ここには確かに単純なものが欠けています。ほとんど同じ列名を持つ pandas の 2 つのデータフレームをマージしようとしていますが、右側のデータフレームには左側にない列がいくつかあり、その逆も同様です。
>df_may
id quantity attr_1 attr_2
0 1 20 0 1
1 2 23 1 1
2 3 19 1 1
3 4 19 0 0
>df_jun
id quantity attr_1 attr_3
0 5 8 1 0
1 6 13 0 1
2 7 20 1 1
3 8 25 1 1
外部結合で結合しようとしました:
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer")
しかし、それは次の結果をもたらします:
Left data columns not unique: Index([....
また、結合する単一の列 ( , など) を指定しましたが、 ,などon = "id"
を除くすべての列が複製されます。これは理想的ではありません。また、列のリスト全体 (多数あります) を に渡しました。id
attr_1_x
attr_1_y
on
mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer", on=list(df_may.columns.values))
どちらが得られますか:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
私は何が欠けていますか?attr_1
すべての行が追加されたdfattr_2
を取得したいと思いますattr_3
。可能な場合は NaN が表示されます。これは、データ変更のかなり典型的なワークフローのように思えますが、行き詰まっています。
前もって感謝します。