Python Pandas:如何基于两个列表更新DataFrame列值
实现DataFrame产品名称替换为对应数值的方法
首先,我们可以先把给定的两个列表转换成映射字典,用产品名称作为键,对应数值作为值,这样就能快速完成替换。
具体步骤:
创建映射字典
用zip()把list1和list2配对,再转成字典:mapping_dict = dict(zip(list1, list2))生成的字典为:
{'Pear':1, 'Lemon':2, 'Apple':3, 'Orange':4}两种替换方法
方法一:使用
map()方法
直接对Product列调用map(),传入映射字典即可:import pandas as pd # 原始DataFrame df = pd.DataFrame({ 'Company_Name': ['A', 'B', 'C', 'D'], 'Product': ['Apple', 'Orange', 'Pear', 'Lemon'] }) list1 = ['Pear', 'Lemon', 'Apple', 'Orange'] list2 = [1, 2, 3, 4] # 创建映射字典 mapping_dict = dict(zip(list1, list2)) # 替换Product列 df['Product'] = df['Product'].map(mapping_dict)方法二:使用
replace()方法
如果需要原地修改DataFrame,可以用replace()并设置inplace=True:df['Product'].replace(mapping_dict, inplace=True)
执行后得到的结果:
| Company_Name | Product |
|---|---|
| A | 3 |
| B | 4 |
| C | 1 |
| D | 2 |
内容的提问来源于stack exchange,提问作者Lychee
相关产品推荐
相关产品推荐

