Masarina
@Masarina (MASARINA KANNRI)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

二つのcsvファイルをcolumnsのheaderをキーにして、横に結合したい。

質問内容

以下のような二つのcsvファイルがあります。

[df_01.csv]
スクリーンショット 2021-11-12 1.38.32.png

[df_02.csv]
スクリーンショット 2021-11-12 1.38.39.png

この二つのcsvファイルを、年月日を基準に横方向に結合したいです。(イメージ)
[df_all.csv]
スクリーンショット 2021-11-12 1.38.46.png

試したこと

import pandas as pd
df = pd.read_csv("df_01.csv")
df = pd.read_csv("df_02.csv")

試しているうちに学んだこと

・concatで縦に結合できること
・pd.to_csv
・pd.read_csv
・pandasにおいてのunicodeの指定[encoding='cp932',engine="python"など...]
...など。

補足情報

python3

コメント

mergeやconcat、そしてcolumnsのheaderを抽出して一列ずつループで結合、、、、色々試してみたのですが、
毎度のエラーを対処しきれず、申し訳ながら質問させていただきます、、、。

0

1Answer

mergeを使って以下のようなは結合できないでしょうか?

import pandas as pd
import numpy as np
df1 = pd.DataFrame()
df1['年月日'] = ['2021/11/1','2021/11/2','2021/11/3','2021/11/4']
df1['平均気温'] = [12.2,11.8,11.5,12.1]


df2 = pd.DataFrame()
df2['年月日'] = ['2021/11/1','2021/11/2','2021/11/3']
df2['最大風速'] = [np.NaN,np.NaN,np.NaN]
df2['最大風速1'] = [0,0,0]

df = df1.merge(df2, how='left')
print(df)

print()

df = df1.merge(df2, how='inner')
print(df)

image.png

エラーが出るのであれば、どういったエラーが出ているのか、dtypesを使って読み込んだdataframeの型はどうなっているのかなどの情報があればもう少し回答しやすいと思います。

1Like

Comments

  1. @Masarina

    Questioner

    ご回答大変嬉しいです。ありがとうございます。
    丸投げという形になってしまいましたこと、申し訳ありませんでした。

    mergeのhowが肝なのですね。こちらについて深く理解しようと思います。
    記述頂いたコードを勉強に使わせていただきます(_ _)



    >>...などの情報があればもう少し回答しやすいと思います。
    アドバイスありがとうございます。参考にさせていただきます。
    しかしながら、ご回答の形は期待通りのものをいただけました。

    これからたくさん使用する機会がのある結合方法でしたので、大変救われました。
  2. 解決されたようでよかったです!
    お役に立てて何よりです(_ _)

Your answer might help someone💌