Python中为DataFrame新增列:匹配现有列键填充字典对应值
问题需求
刚接触Python及pandas/numpy,需要为现有DataFrame新增一列:当DataFrame中Name列的值与给定字典的键匹配时,填充字典对应的value;不匹配则填充空字符串。
初始数据
DataFrame
| Name | Fonder | Year | |
|---|---|---|---|
| 0 | company1 | person1 | 1999 |
| 1 | company2 | person2 | 2000 |
| 2 | company3 | person3 | 2001 |
| 3 | company4 | person4 | 2002 |
| 4 | company5 | person5 | 2003 |
匹配字典
col_dict = {'company2': 'abc', 'company4': 'xyz',}
解决方案
使用pandas的map()方法结合fillna()即可实现需求:
import pandas as pd # 假设你的DataFrame变量名为df df['new_col'] = df['Name'].map(col_dict).fillna('')
df['Name'].map(col_dict):将Name列的每个值与字典col_dict的键匹配,返回对应value,不匹配的返回NaN.fillna(''):将所有NaN替换为空字符串
预期结果
| Name | Fonder | Year | new_col | |
|---|---|---|---|---|
| 0 | company1 | person1 | 1999 | |
| 1 | company2 | person2 | 2000 | abc |
| 2 | company3 | person3 | 2001 | |
| 3 | company4 | person4 | 2002 | xyz |
| 4 | company5 | person5 | 2003 |
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

