小编Jar*_*rek的帖子

在熊猫中合并“一对一”数据框

我有两个数据框:

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。 …

python merge dataframe pandas

3
推荐指数
1
解决办法
1927
查看次数

标签 统计

dataframe ×1

merge ×1

pandas ×1

python ×1