如何在Pandas DataFrame现有列标题上方新增一级分层列标题
Pandas 新增分层上层列头实现方案
你需要用到Pandas的多层索引MultiIndex来修改列属性,以下是可直接运行的实现代码:
方法1:元组映射写法(适合列数少、映射规则灵活的场景)
import pandas as pd # 初始化示例数据 df = pd.DataFrame(data={'A': range(5), 'B': range(5), 'C':range(5)}) # 按需求设置分层列头 df.columns = pd.MultiIndex.from_tuples([ ('D', 'A'), ('D', 'B'), ('E', 'C') ]) print(df)
运行后输出效果和你要求的完全一致。
方法2:数组批量映射写法(适合列数多的场景)
如果后续列数量多,逐个写元组太繁琐,可以直接传入上下两层的标题数组批量生成:
import pandas as pd df = pd.DataFrame(data={'A': range(5), 'B': range(5), 'C':range(5)}) # 上层标题按列顺序排列,和下层原有列名一一对应 upper_headers = ['D', 'D', 'E'] lower_headers = df.columns.tolist() df.columns = pd.MultiIndex.from_arrays([upper_headers, lower_headers])
两种方法实现的效果完全相同,可根据实际场景选择。
内容的提问来源于stack exchange,提问作者jello195
相关产品推荐
相关产品推荐

