我有两个数据帧:
df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3','A4','A5']})
df2 = pd.DataFrame({'AA': ['A1', 'A3','A16','A1'],
'BB': ['A2', 'Z1','A12','X9'],
'CC': ['121', '345','444','432'],
'DD': ['D0', 'D1','783','980']})
df1:
A
0 A1
1 A2
2 A3
3 A4
4 A5
df2:
AA BB CC DD
0 A1 A2 121 D0
1 A3 Z1 345 D1
2 A16 A12 444 783
3 A1 X9 432 980
我希望根据以下条件合并这两个数据帧:结果数据帧由DF2的行组成,这些行的AA列或BB列中的值与DF1中A列中的值匹配
例如:
AA BB CC DD
0 A1 A2 121 D0
1 A1 A2 121 D0
2 A1 X9 432 980
1 A3 Z1 345 D1
我尝试了以下方法,但我不确定这是否是正确的方法。 首先,我合并了A列(df1)和AA列(df2):
half1 = pd.merge(df1, df2, how='left', left_on=['A'], right_on = ['AA'])
然后我合并了A列(df1)和BB列(df2):
half2 = pd.merge(df1, df2, how='left', left_on=['A'], right_on = ['BB'])
然后采取联合行动:
union = half1.merge(half2, how='outer')
但结果不是我想要的
对于通过^{} 和通过^{} 和^{} 筛选的两列的数据处理测试成员身份:
应使用带有
rename
列的内部联接以及pd.concat
来更改您的解决方案:相关问题 更多 >
编程相关推荐