[英]Pandas - Merge 2 df with same column names but exclusive values
MainDF.merge(dfA, how = 'left', on='key')
, which will add the column "tariff" to my MainDF, for the keys in dfA and also in MainDF. MainDF.merge(dfA, how = 'left', on='key')
,这将在我的MainDF中添加“关税”列,用于dfA和MainDF中的键。 This will put NaN to all keys in MainDF not in dfA MainDF.merge(dfB, how = 'left', on='key')
to add the tariff for the keys in MainDF but not in dfA. MainDF.merge(dfB, how = 'left', on='key')
以在MainDF中而不是在dfA中添加密钥的资费。 How should I do so in a python way ? 我应该如何以python方式这样做? I could add a new column which is either tariff_x or tariff_y but I don't find that very elegant.
我可以添加一个新列,即或者riff_x或riff_y,但是我觉得那不是很优雅。
Thanks 谢谢
你可以先concat
dfA
和dfB
与合并前MainDF
:
MainDF.merge(pd.concat([dfA, dfB], axis=0), how='left', on='key')
Do you need something like this: 您是否需要以下内容:
dfA = pd.DataFrame({'tariff': [1, 2, 3], 'A': list('abc')})
dfB = pd.DataFrame({'tariff': [4, 5, 6], 'A': list('def')})
dfJoin = pd.concat([dfA, dfB], ignore_index=True)
A B tariff
0 a NaN 1
1 b NaN 2
2 c NaN 3
3 NaN d 4
4 NaN e 5
5 NaN f 6
Now you can merge with dfJoin
. 现在,您可以与
dfJoin
合并。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.