如何给pandas DataFrame添加多级子表头以提升列分组可读性
pandas可通过设置多级列索引(MultiIndex)实现你需要的两级分组表头效果,以下是两种常用实现方案:
方案1:元组构造法(适合列数少、分组规则明确的场景)
直接为每一列指定对应的一级、二级表头,代码如下:
import pandas as pd # 你原有列选择逻辑 df1 = df1[['Date', 'Time', 'USA', 'Canada', 'SD', 'HD']] # 构造两级列索引,元组格式为(一级表头, 二级表头),顺序和现有列完全对应 df1.columns = pd.MultiIndex.from_tuples( [ ('When', 'Date'), ('When', 'Time'), ('Country', 'USA'), ('Country', 'Canada'), ('Channel', 'SD'), ('Channel', 'HD') ] )
方案2:数组批量构造法(适合列数多、分组规则可批量匹配的场景)
不用逐个写元组,通过两个顺序对应的数组分别定义一级、二级表头,批量生成索引:
# 一级表头数组,顺序和现有列一一对应 level1_header = ['When', 'When', 'Country', 'Country', 'Channel', 'Channel'] # 二级表头直接复用原有的列名 level2_header = df1.columns.tolist() # 生成多级列索引并赋值 df1.columns = pd.MultiIndex.from_arrays([level1_header, level2_header])
设置完成后打印表头即可看到你预期的分组效果,后续取数时也可直接按分组调取,比如调取When分组下的所有列可以直接写df1['When']。
内容的提问来源于stack exchange,提问作者Rocky5
相关产品推荐
相关产品推荐

