繁体   English   中英

合并/合并熊猫中的数据框

[英]Merging/Combining Dataframes in Pandas

我有一个df1,例如:

     B    A    C
B         1
A              1
C    2

,以及df2,例如:

    C    E    D
C        2    3
E             1
D   2

列和行“ C”在两个数据框中都是相同的。

我想合并这些数据框,以便得到

    B    A    C    D    E
B        1
A             1
C   2              2    3
D                       1
E   2  

是否有捷径可寻? pd.concat和pd.append似乎不起作用。 谢谢!

编辑:df1.combine_first(df2)可以工作(感谢@jezarel),但是我们可以保持原始顺序吗?

有一个问题, combine_first总是对列命名索引进行排序,因此需要使用合并列名称reindex

idx = df1.columns.append(df2.columns).unique()
print (idx)
Index(['B', 'A', 'C', 'E', 'D'], dtype='object')

df = df1.combine_first(df2).reindex(index=idx, columns=idx)
print (df)
     B    A    C    E    D
B  NaN  1.0  NaN  NaN  NaN
A  NaN  NaN  1.0  NaN  NaN
C  2.0  NaN  NaN  2.0  3.0
E  NaN  NaN  NaN  NaN  1.0
D  NaN  NaN  2.0  NaN  NaN

更一般的解决方案:

c = df1.columns.append(df2.columns).unique()
i = df1.index.append(df2.index).unique()

df = df1.combine_first(df2).reindex(index=i, columns=c)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM