我肯定在这里错过了一些简单的东西。尝试合并 pandas 中几乎具有相同列名的两个数据框,但右侧数据框有一些左侧没有的列,反之亦然。
>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
like 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。这似乎是一个非常典型的数据处理工作流程,但我被困住了。