Pandas操作:如何根据字典键匹配为DataFrame添加alias列
Pandas根据地址字典添加别名列的简便实现
直接用Pandas的map()方法就能快速搞定,通过address列匹配字典的键,自动映射出对应的别名值,代码简洁高效。
示例代码
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'date': ['01-01-23', '03-02-23', '03-03-23', '12-05-23'], 'address': ['n167867', 'b2567gh', 'a78956b', 'n1hd789'], 'value': [10, 30, 4, 25], 'type': ['A', 'A', 'B', 'C'] }) # 地址-别名映射字典 address_alias = { 'n167867': 'ABC', 'b2567gh': 'XYZ', 'a78956b': 'CGH', 'n1hd789': 'ZET' } # 新增alias列,通过address列映射字典 df['alias'] = df['address'].map(address_alias) # 查看结果 print(df)
执行结果
| date | address | value | type | alias |
|---|---|---|---|---|
| 01-01-23 | n167867 | 10 | A | ABC |
| 03-02-23 | b2567gh | 30 | A | XYZ |
| 03-03-23 | a78956b | 4 | B | CGH |
| 12-05-23 | n1hd789 | 25 | C | ZET |
补充说明
- 如果
address列存在字典中没有的键,map()会返回NaN,可以加fillna()设置默认值,比如df['address'].map(address_alias).fillna('未知') - 这种方法用Pandas向量化操作,不需要手动循环,处理大数据量时效率更高
内容的提问来源于stack exchange,提问作者Ziva
相关产品推荐
相关产品推荐

