如何移除重复列、添加datetime列并清理销售数据集的总计行
整理多组重复结构的每日销售数据
Excel Power Query 操作方案
适合无代码基础的用户,通过可视化界面完成数据规整:
- 导入数据到Power Query
选中目标数据区域,按Ctrl+T转为Excel表,点击「数据」选项卡→「从表格/区域」进入Power Query编辑器。 - 标记每行所属日期
- 添加自定义列,公式为
=IF(ISDATE([Column1]), [Column1], null),命名为datetime。 - 选中
datetime列,点击「转换」选项卡→「填充」→「向下」,让所有数据行关联到对应日期。
- 添加自定义列,公式为
- 剔除无效行
添加三个自定义列识别无效行:IsDate:=ISDATE([Column1])(标记日期标题行)IsHeader:=[Column1] = "Salesperson"(标记重复表头行)IsTotal:=[Column1] = "总计"(标记总计行)
筛选掉IsDate=TRUE、IsHeader=TRUE、IsTotal=TRUE的所有行。
- 设置标准列名
回到原始数据,复制任意一行表头(值为Salesperson的行)的所有列值;返回处理后的表,点击「主页」→「使用第一行作为标题」下拉菜单→「将标题替换为」,粘贴复制的列名。 - 导出整理后的数据
点击「主页」→「关闭并上载」,将规整好的数据加载回Excel工作表。
Python Pandas 代码方案
适合批量处理或自动化需求,代码如下:
import pandas as pd # 读取原始数据(不指定表头,因表头重复出现) df = pd.read_excel("销售数据.xlsx", header=None) # 识别日期并向下填充,为每行分配对应日期 df["datetime"] = df[0].apply(lambda x: pd.to_datetime(x, errors="coerce")).ffill() # 剔除日期标题行、重复表头行、总计行 df = df[ (df[0] != df["datetime"].dt.strftime("%Y-%m-%d")) & (df[0] != "Salesperson") & (df[0] != "总计") ] # 设置标准列名 df.columns = ["Salesperson", "north", "east", "south", "west", "datetime"] # 重置索引并保存结果 df = df.reset_index(drop=True) df.to_excel("整理后销售数据.xlsx", index=False)
内容的提问来源于stack exchange,提问作者eddie
相关产品推荐
相关产品推荐

