如何填充Pandas多级索引DataFrame列名并实现列名扁平化
处理MultiIndex列名:前向填充+扁平化
步骤1:前向填充MultiIndex第一级的空值
针对列MultiIndex中第一级存在的空值(nan),通过提取第一级索引、填充后重构MultiIndex完成前向填充:
import pandas as pd # 提取第一级列名并执行前向填充 filled_first_level = df.columns.get_level_values(0).ffill() # 用填充后的第一级+原第二级重构列MultiIndex df.columns = pd.MultiIndex.from_arrays( [filled_first_level, df.columns.get_level_values(1)], names=df.columns.names )
步骤2:扁平化列名
将两级列名合并为单一字符串,第二级为空的列直接保留第一级名称,非空则以“第一级 第二级”的格式拼接:
# 过滤空值后拼接列名 df.columns = [' '.join(filter(None, col_tuple)) for col_tuple in df.columns]
执行完成后,最终列名将变为:'Month', 'TG', 'Reach level', 'Reach plan', 'Reach sth (p.p.)', 'Reach final', 'Prime Time final', 'Prime Time AGB', 'Prime Time diff (p.p.)', 'Prime Time diff p.p.'
内容的提问来源于stack exchange,提问作者bry888
相关产品推荐
相关产品推荐

