【发布时间】:2018-05-06 11:01:41
【问题描述】:
我想使用它们相似的列“A”组合两个数据框:
>>> df1
A B
0 I 1
1 I 2
2 II 3
>>> df2
A C
0 I 4
1 II 5
2 III 6
为此,我尝试使用:
merged = pd.merge(df1, df2, on='A', how='outer')
返回:
>>> merged
A B C
0 I 1.0 4
1 I 2.0 4
2 II 3.0 5
3 III NaN 6
但是,由于 df2 只包含一个 A == 'I' 的值,我不希望该值在合并的数据帧中重复。相反,我想要以下输出:
>>> merged
A B C
0 I 1.0 4
1 I 2.0 NaN
2 II 3.0 5
3 III NaN 6
最好的方法是什么?我是 python 新手,仍然对所有的 join/merge/concatenate/append 操作有些困惑。
【问题讨论】:
-
你想让它知道C中的4值属于B中的1吗?
-
@flyingmeatball,我其实并不关心 B 列和 C 列之间的关系。我只想将 4 插入 A == 'I' 的第一行,其中 C 列还没有值.
标签: python pandas dataframe merge