如何基于Multi-Index DataFrame指定列值通过映射字典新增目标列
实现方法
你可以通过pandas自带的map()方法快速实现批量列新增,该方法会自动匹配action列值与映射字典的key,未匹配的项默认返回NaN,替换为空白字符串即可符合预期要求,多索引结构不会对该操作产生影响。
核心代码
import pandas as pd # 1. 把所有新增列的映射规则统一整理为配置,后续加第三列直接在该字典中追加即可 remap_config = { "remap_col1": { "A": "Value1", "B": "Value2" }, "remap_col2": { "A-B": "Value3", "B-C": "Value4" } } # 2. 批量生成映射列 for new_col, map_rule in remap_config.items(): df[new_col] = df["action"].map(map_rule).fillna("")
逻辑说明
Series.map()方法会对action列的每一个值做映射查找,匹配到字典key就返回对应value,未匹配则返回NaNfillna("")会把所有未匹配到的NaN值替换为空白,符合你要求的「其余位置留空」的规则- 该方法时间复杂度为O(n),数据量较大时也能保持较高的执行效率
内容的提问来源于stack exchange,提问作者S44
相关产品推荐
相关产品推荐

