最佳答案
我肯定漏掉了一些简单的东西。试图在熊猫中合并两个数据框架,这两个数据框架有几乎相同的列名,但是右边的数据框架有一些左边没有的列,反之亦然。
>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)
我错过了什么?我希望得到一个 df,其中包含所有行,并且尽可能填充 attr_1
、 attr_2
、 attr_3
,在不显示这些行的地方填充 NaN。这似乎是一个非常典型的数据挖掘工作流程,但我被卡住了。
先谢谢你。