繁体   English   中英

熊猫根据另一列的值替换值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM