gpt4 book ai didi

python - Pandas:合并两个 1D DataFrame,输出两列,并为唯一元素填充值

转载 作者:行者123 更新时间:2023-11-28 22:30:51 27 4
gpt4 key购买 nike

我有这两个数据框:

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

我想以保留两列的方式合并它们,连接公共(public)值而不考虑它们的索引,并且唯一值在另一行中使用填充值保留,也就是说,我想要这个结果:

   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')

但这两个没有产生预期的结果。我尝试了不同的选项,但没有成功。

我还研究了其他方法,例如 appendassign,但似乎都没有提供执行此操作的功能。

我觉得这是一个常见的操作,应该有一个简单直接的解决方案,所以我可能忽略了一些明显的东西。

你能告诉我它是如何正确完成的吗?

最佳答案

解决方案 concat它通过 index 连接值,所以 set_index是必要的:

df = pd.concat([df1.set_index('A', drop=False).A,
df2.set_index('A', drop=False).A],
axis=1,
keys=('A_x','A_y')).reset_index(drop=True)
print (df)
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

关于python - Pandas:合并两个 1D DataFrame,输出两列,并为唯一元素填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41931809/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com