d1=pd.DataFrame({'x':['a','b','c','c'],'y':[-1,-2,-3,0]})
d2=pd.DataFrame({'x':['d','c','a','b'],'y':[0.1,0.2,0.3,0.4]})
我想用d2中的对应
d1.y
替换y y。就像Excel中的vlookup一样。核心问题是根据x替换y而不是简单地操纵y。我想要的是Out[40]:
x y
0 a 0.3
1 b 0.4
2 c 0.2
3 c 0.0
最佳答案
在条件下使用Series.map
:
s = d2.set_index('x')['y']
d1.loc[d1.y < 0, 'y'] = d1['x'].map(s)
print (d1)
x y
0 a 0.3
1 b 0.4
2 c 0.2
3 c 0.0
关于python - Pandas 条件 map /填充/替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56071559/