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

如何用pandas处理csv销售数据:合并同类列并统计最高销售额时段

具体实现代码

第一步:导入库并读取原始数据

import pandas as pd

# 读取csv时直接把时间列解析为datetime格式,方便后续时间处理
df = pd.read_csv("你的销售数据文件路径.csv", parse_dates=["Date+time:"])

第二步:合并同前缀品类列

我们通过提取列名首个空格前的内容作为品类分组依据,对同组列求和完成合并:

# 构造列名到品类的映射,第一列为时间列跳过
col_to_category = {}
for col in df.columns[1:]:
    base_cate = col.split(" ")[0]
    col_to_category[col] = base_cate

# 按品类分组对列求和,得到合并后的品类销售数据
cate_df = df.groupby(col_to_category, axis=1).sum()
# 把时间列加回合并后的数据表
cate_df.insert(0, "datetime", df["Date+time:"])

第三步:统计每天销售额最高的小时时段

# 提取日期、小时维度
cate_df["date"] = cate_df["datetime"].dt.date
cate_df["hour"] = cate_df["datetime"].dt.hour

# 先计算每个日期+小时的总销售额
hourly_total = cate_df.groupby(["date", "hour"])[["shirt", "shorts", "accessories"]].sum().sum(axis=1).reset_index(name="total")

# 筛选出每天销售额最高的小时,若有多个小时销售额并列最高会全部保留
daily_top_hour = hourly_total.loc[hourly_total.groupby("date")["total"].idxmax()]
# 输出daily_top_hour即可查看全年每天的最高销售额时段

第四步:计算最高时段各品类的销售额占比

# 构造日期+小时的复合键,筛选所有属于最高时段的销售明细
top_hour_keys = list(zip(daily_top_hour["date"], daily_top_hour["hour"]))
cate_df["date_hour"] = list(zip(cate_df["date"], cate_df["hour"]))
top_data = cate_df[cate_df["date_hour"].isin(top_hour_keys)]

# 汇总所有最高时段各品类的总销售额,计算占比
cate_total = top_data[["shirt", "shorts", "accessories"]].sum()
cate_ratio = (cate_total / cate_total.sum()).round(4) * 100
# 输出cate_ratio即可得到各品类的销售额占比(单位为%)

补充说明

  • 若同一天存在多个销售额并列最高的小时,上述代码会将所有并列时段都纳入统计,如果只需保留第一个出现的最高时段,可将idxmax()替换为nlargest(1, keep="first")
  • 占比的小数保留位数可自行修改round()的参数调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:01