我有两个数据框:
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']})
Run Code Online (Sandbox Code Playgroud)
我已经合并了它们并得到df3:
df3=pd.merge(df1,df2, left_on=["Invoice","Value"], right_on=["Invoice","Value"])
Run Code Online (Sandbox Code Playgroud)
Df3输出:
Invoice Value TestData
0 2 25 A
1 2 25 D
2 5 15 C
Run Code Online (Sandbox Code Playgroud)
我的问题是如何以“一对一”方式合并数据框(我的意思是-当2号发票中的2号发票仅出现一次(或通常较少)时,然后不要在其中创建2号发票的另一行合并的数据框)。我想得到这样的东西:
Invoice Value TestData
0 2 25 A
1 5 15 C
Run Code Online (Sandbox Code Playgroud)
或这个:
Invoice Value TestData
0 2 25 D
1 5 15 C
Run Code Online (Sandbox Code Playgroud)
我只尝试左右合并,但这不起作用-总是有两行发票编号为2。 …