[英]pandas replace values based on values from another column
我有两个数据框(数据和价格映射)
数据:
Global id Price
0 AR.1852218.1
1 AR.1852223.1 0,6
2 AR.1852251.1 0,56
3 AR.1852254.1
4 AR.1852257.1 0,25
5 AR.1852386.1 0,33
6 AR.1852549.1
价格映射:
G.ID Price
0 AR.1852218.1 0,1
1 AR.1852254.1 0,25
2 AR.1852549.1 0,33
我想根据标准 Global id=G.ID 填充 priceMapping 数据框中的价格。
在此先感谢您的帮助。
洛朗
使用Series.map
通过系列创建由priceMapping
,然后通过更换不匹配值,原来的Series.fillna
,因为不匹配的值创建遗漏值:
s = priceMapping.set_index('G.ID')['Price']
Data['Price'] = Data['Global id'].map(s).fillna(Data['Price'])
print (Data)
Global id Price
0 AR.1852218.1 0,1
1 AR.1852223.1 0,6
2 AR.1852251.1 0,56
3 AR.1852254.1 0,25
4 AR.1852257.1 0,25
5 AR.1852386.1 0,33
6 AR.1852549.1 0,33
另一个想法是使用Series.replace
:
s = priceMapping.set_index('G.ID')['Price']
Data['Price'] = Data['Global id'].replace(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.