[英]Joining two DataFrames in with Pandas if one column matches a set of other columns
我正在尝试加入/合并两个 Pandas 数据帧,但是如果一列与第二帧上的一组列中的任何一个匹配,我想加入行。 有两列的示例(我的真实集合中有八列)。
我的数据不可能有多个匹配项。
df1 =
person fav second_fav
0 adam xxx cherry
1 bob banana yyy
df2 =
fruit fruit_val
0 apple 10
1 banana 20
2 cherry 30
所需的 output:
person fav second_fav fruit_val
0 adam xxx cherry 30
1 bob banana yyy 20
使用每个标准将两个数据框合并两次可以帮助实现这一目标
import pandas as pd
df1 = pd.DataFrame(data = {'person':['adam','bob'],
'fav':['xxx','banana'],
"second_fav":['cherry','yyy'],})
df2 = pd.DataFrame(data = {'fruit':['apple','banana','cherry'],
'fruit_val':[10,20,30],})
使用第一个条件的第一个内部连接
result1 = pd.merge(df1, df2, left_on=['fav'], right_on=['fruit'], how='inner', sort=True)
第二次加入
result2 = pd.merge(df1, df2, left_on=['second_fav'], right_on=['fruit'], how='inner', sort=True)
Append 两个数据帧
result_final = result1.append(result2)
result_final
Out[14]:
person fav second_fav fruit fruit_val
0 bob banana yyy banana 20
0 adam xxx cherry cherry 30
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.