【发布时间】:2018-04-16 02:43:38
【问题描述】:
我有两个数据框:
df1 = pd.DataFrame(data =
{'Invoice' : [1, 2, 3, 4, 5], 'Value' : [10, 25, 40, 10, 15]})
df2 = pd.DataFrame(data =
{'Invoice' : [2, 3, 5, 2], 'Value' : [25, 11, 15,25], 'TestData':["A",'B','C','D']})
我已经合并它们并得到 df3:
df3=pd.merge(df1,df2, left_on=["Invoice","Value"], right_on=["Invoice","Value"])
Df3 输出:
Invoice Value TestData
0 2 25 A
1 2 25 D
2 5 15 C
我的问题是如何使用“一对一”获得合并的数据框(我的意思是 - 当发票编号 2 在两个数据框中的一个中仅出现一次(或通常更少)时,请不要使用发票创建另一行合并数据框中的第 2 号)。我想得到这样的东西:
Invoice Value TestData
0 2 25 A
1 5 15 C
或者这个:
Invoice Value TestData
0 2 25 D
1 5 15 C
我只尝试了左右合并,但这不起作用 - 发票编号为 2 的行总是有两行。
谢谢你,
贾雷克
【问题讨论】:
标签: python pandas dataframe merge