【发布时间】:2017-08-01 16:16:04
【问题描述】:
我正在尝试使用带有通配符的多列合并两个熊猫数据框。
考虑数据集,其中 result 是所需合并的结果:
left=pd.DataFrame({'Type':['ABC','ADEC','OOO','DOG','MOT'], 'ID':[22,44,23,21,55]})
right=pd.DataFrame({'Type':['ABC','ADE*','*','DOG'], 'ID':[22,'*','23','2*'], 'Value': [0,1,1,0]})
result=pd.DataFrame({'Type':['ABC','ADEC','OOO','DOG','MOT'], 'ID':[22,44,23,21,55],'Value': [0,1,1,0,'NaN']})
哪个给予:
left
ID Type
0 22 ABC
1 44 ADEC
2 23 OOO
3 21 DOG
4 55 MOT
right
ID Type Value
0 22 ABC 0
1 * ADE* 1
2 23 * 1
3 2* DOG 0
result
ID Type Value
0 22 ABC 0
1 44 ADEC 1
2 23 OOO 1
3 21 DOG 0
4 55 MOT NaN
我尝试使用:
pd.merge(left=left, right=right, left_on=['Type', 'ID'], right_on ['Type','ID'], how='left')
但结果是:
pd.merge(left=left, right=right, left_on=['Type', 'ID'], right_on= ['Type','ID'], how='left')
ID Type Value
0 22 ABC 0.0
1 44 ADEC NaN
2 23 OOO NaN
3 21 DOG NaN
4 55 MOT NaN
非常感谢任何帮助。谢谢!
【问题讨论】:
-
我认为 Pandas 没有在合并、连接等中使用通配符的功能......