[英]Pandas: Merge two 1D DataFrames outputting both columns with fill-values for unique elements
我有以下两个数据框:
import pandas as pd
df1 = pd.DataFrame({'A':[1,2,4,6]})
df2 = pd.DataFrame({'A':[1,2,3,6]})
df1
Out[27]:
A
0 1
1 2
2 4
3 6
df2
Out[28]:
A
0 1
1 2
2 3
3 6
我想以保留两列的方式合并它们,不考虑它们的索引而加入公共值,并用另一行中的填充值保留唯一值,也就是说,我想要这个结果:
A_x A_y
0 1.0 1.0
1 2.0 2.0
2 NaN 3.0
3 4.0 NaN
4 6.0 6.0
我努力了
pd.merge(df1,df2,on=['A'],how='outer')
pd.concat([df1,df2],axis=1,join='outer')
但是这两个没有达到预期的效果。 我尝试了不同的选择,但没有运气。
我还研究了其他方法,例如append
和assign
但似乎没有一种方法可以提供此功能。
我觉得这是一个普通的操作,应该有一个简单直接的解决方案,所以我可能会忽略一些显而易见的事情。
你能告诉我怎么做对吗?
df2 = df2.set_index('A', drop=False)
kws = dict(on='A', lsuffix='_x', rsuffix='_y', how='outer')
df1.join(df2, **kws).drop('A', 1)
A_x A_y
0 1.0 1.0
1 2.0 2.0
2 4.0 NaN
3 6.0 6.0
3 NaN 3.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.