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

Jupyter Notebook处理含多工作表多级表头的Excel数据集求助

数据集清洗整理可行方案

你之前的两种尝试分别存在两个核心问题:一是合并多工作表时没有保留每个工作表对应的时间维度,二是没有对行中的LGA/Region分类标记,以下是完整可运行的整理方案,最终输出整洁数据格式,适配后续所有分析需求。

1. 核心处理逻辑

最终目标输出每行对应统计时间+区域类型+区域名称+指标值的整洁结构,方便后续做时间趋势、区域对比、指标拆分等分析。

  • 每个工作表对应一个统计时间点,读取时同步保留时间维度
  • 新增area_type列区分每行是LGA还是Region
  • 多级表头可选保留或扁平化合并为单列

2. 完整实现代码

import pandas as pd
import numpy as np

# 1. 读取全量工作表,保留三级表头结构
file_path = "C:\\Users\\ASUS\\Downloads\\dataset.xlsx"
# sheet_name=None 会返回字典:键为工作表名,值为对应工作表DataFrame
df_dict = pd.read_excel(file_path, header=[0,1,2], sheet_name=None)

clean_df_list = []
for sheet_name, df in df_dict.items():
    # 2. 补充时间维度:工作表名一般对应统计时间,可根据你实际工作表名格式调整转时间逻辑
    # 示例:如果工作表名是'1999-06'格式,直接转datetime即可
    df['stat_time'] = pd.to_datetime(sheet_name)
    
    # 3. 处理行属性:区分LGA和Region
    # 把行名转为普通列
    df = df.reset_index(names='area_name')
    # 新增区域类型列:根据行名规则匹配,比如LGA名称带数字编码,可根据实际规则调整匹配条件
    df['area_type'] = np.where(df['area_name'].str.contains('\d', na=False), 'LGA', 'Region')
    
    # 4. 可选:扁平化多级表头,把三级表头合并为下划线连接的单列,不需要可跳过此步
    df.columns = ['_'.join(col).strip() if isinstance(col, tuple) else col for col in df.columns]
    
    clean_df_list.append(df)

# 拼接所有工作表数据得到最终宽表
final_wide_df = pd.concat(clean_df_list, axis=0, ignore_index=True)

3. 可选优化适配分析需求

3.1 宽表转长表(更适配多维度分析)

如果需要按指标维度做聚合、筛选,可以转为长表结构:

final_long_df = final_wide_df.melt(
    id_vars=['stat_time', 'area_type', 'area_name'],
    var_name='indicator',
    value_name='cumulative_value'
)

3.2 累计值转单期值

因为你的数据是累计值,需要计算单期新增值的话可以按区域分组后做差:

# 先按区域、时间排序
final_wide_df = final_wide_df.sort_values(['area_type', 'area_name', 'stat_time'])
# 示例计算「新建住宅_销售套数_总计」的单期值,可替换为你需要的指标列
final_wide_df['new_house_sales_period'] = final_wide_df.groupby(['area_type', 'area_name'])['新建住宅_销售套数_总计'].diff()

4. 验证结果

运行final_wide_df.head()或final_long_df.head()即可查看整理后的数据格式,后续可直接用于分组统计、可视化、建模等分析操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:45:09