如何通过字典映射为Pandas DataFrame添加列层级
实现方法
将原有单层列索引替换为两层MultiIndex即可,上层保留原列名,下层使用字典查询得到的映射值,完全匹配目标结构。
可直接运行的完整代码
import pandas as pd # 初始化示例数据 df = pd.DataFrame(index=list('abcde'), data={'A': range(5), 'B': range(5)}) my_dict = {"B": "BB","A": "AA","C": "CC"} # 构建双层列索引并替换原有列 df.columns = pd.MultiIndex.from_arrays( [df.columns, [my_dict[col] for col in df.columns]] )
实际输出
执行代码后生成的DataFrame结构与预期完全一致:
A B AA BB a 0 0 b 1 1 c 2 2 d 3 3 e 4 4
注意事项
- 代码仅遍历DataFrame已存在的列,字典中定义但不属于df的键(如示例中的
C)不会参与运算,既不会触发KeyError,也不会新增多余列 - 如果需要调整层级上下顺序,只需调换
from_arrays中两个列表的位置即可
内容的提问来源于stack exchange,提问作者David Serero
相关产品推荐
相关产品推荐

