如何使用Pandas处理格式混乱的Excel数据以用于分析?
Pandas处理混乱Excel的实操方案
通用处理流程(适配你的场景)
针对你提到的格式混乱、需删除空白上移的Excel,用Pandas可按以下步骤处理:
- 全量读取原始数据:不提前跳过空行或指定表头,避免丢失有效信息
import pandas as pd # header=None 保留所有原始行,不自动识别表头 raw_df = pd.read_excel("你的原始数据.xlsx", header=None) - 清理纯空行:先删除所有列均为空的行,减少无效数据
filtered_df = raw_df.dropna(how="all").reset_index(drop=True) - 规整字段填充:若存在分组类字段(如分类、部门)仅在每组开头出现、下方为空,用向下填充补全
# 示例:假设第1列是分组字段,根据实际列索引调整 filtered_df[1] = filtered_df[1].ffill() - 匹配目标格式:对照你提供的目标规整格式,重命名列、调整列顺序
# 替换为你的目标列名列表 filtered_df.columns = ["序号", "分类", "姓名", "数据值"] # 调整列顺序至目标格式 target_cols = ["序号", "姓名", "分类", "数据值"] final_df = filtered_df[target_cols] - 导出结果
final_df.to_excel("规整后数据.xlsx", index=False)
针对48000+行的性能优化
- 分块读取:若文件过大导致内存不足,采用分块方式处理
chunk_list = [] # 每次读取10000行,可根据内存情况调整 for chunk in pd.read_excel("你的原始数据.xlsx", header=None, chunksize=10000): processed_chunk = chunk.dropna(how="all") # 加入字段填充、格式调整逻辑 processed_chunk[1] = processed_chunk[1].ffill() chunk_list.append(processed_chunk) final_df = pd.concat(chunk_list).reset_index(drop=True) - 精准验证:处理后抽取部分数据和你手动整理的样本对比,用
final_df.sample(10)查看随机行,确保数据逻辑正确
内容的提问来源于stack exchange,提问作者Ryan Barnes
相关产品推荐
相关产品推荐

