首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas中的数据合并/合并

Pandas中的数据合并/合并
EN

Stack Overflow用户
提问于 2018-03-26 14:21:37
回答 1查看 105关注 0票数 0

我有一个df1,例如:

代码语言:javascript
复制
     B    A    C
B         1
A              1
C    2

,以及一个df2,例如:

代码语言:javascript
复制
    C    E    D
C        2    3
E             1
D   2

列和行'C‘在两个数据格式中都很常见。

我想把这些数据结合起来,

代码语言:javascript
复制
    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),但是我们能保持原样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-26 14:41:47

combine_first总是有排序列名称的问题,因此需要使用组合列名的reindex

代码语言:javascript
复制
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

更普遍的解决办法:

代码语言:javascript
复制
c = df1.columns.append(df2.columns).unique()
i = df1.index.append(df2.index).unique()

df = df1.combine_first(df2).reindex(index=i, columns=c)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49493720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档