You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame指定3行设为多级列名并模拟read_excel的header功能?

解决多级列名设置问题

直接给你可行的方案,核心是先处理列名行的空值填充(模拟Excel合并单元格的自动填充逻辑),再转成多级索引:

  • 提取用于列名的三行(索引3、4、5),转置后用ffill()填充空值,确保上级列名能覆盖到后续对应列
  • 将填充后的结果转换为MultiIndex
  • 用原数据从第6行(索引6)开始的部分构建新DataFrame,设置列名为生成的多级索引

具体代码如下:

import pandas as pd
import numpy as np

# 提取列名行并处理空值填充(若原始空值为字符串,先转成NaN)
header_rows = df.iloc[3:6].replace('', np.nan).T.ffill().T
# 转换为多级列索引
multi_columns = pd.MultiIndex.from_frame(header_rows)
# 构建新DataFrame,数据从索引6开始,重置行索引
new_df = df.iloc[6:].reset_index(drop=True)
new_df.columns = multi_columns

这样就能实现和pandas.read_excel(header=[3,4,5])完全一致的多级列名效果。

内容的提问来源于stack exchange,提问作者Elias Urra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:50:26