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

如何用Pandas计算连续销售日期区间的汇总统计?

解决Pandas统计连续销售天数区间总销量的问题

我明白你的问题了——你之前的代码误把**每月的日期号(比如8号、12号)**划分到区间里,但这和你需要的「连续销售天数」完全不是一回事。咱们来一步步实现正确的统计逻辑:

问题分析

你需要先识别出数据中所有连续的日期段(比如12-08-16到15-08-16是连续4天),然后计算每个连续段的天数,再把对应段的销量汇总到指定的区间(1-3天、4-7天等)里。

完整实现代码

import pandas as pd

# 1. 读取并预处理数据(替换成你的数据读取方式)
data = {
    "DATE_LOCATION": ["07-08-16 0:00", "08-08-16 0:00", "12-08-16 0:00", 
                      "13-08-16 0:00", "14-08-16 0:00", "15-08-16 0:00",
                      "22-10-16 0:00", "23-10-16 0:00", "26-10-16 0:00",
                      "28-10-16 0:00", "29-10-16 0:00", "30-10-16 0:00"],
    "Sold": [2,7,3,1,2,1,1,2,1,1,3,3]
}
df = pd.DataFrame(data)

# 2. 转换日期格式并排序(必须排序,否则连续日期判断会出错)
df["DATE_LOCATION"] = pd.to_datetime(df["DATE_LOCATION"], format="%d-%m-%y %H:%M")
df = df.sort_values("DATE_LOCATION").reset_index(drop=True)

# 3. 识别连续日期的分组:计算日期差,标记非连续的点,生成组ID
df["date_diff"] = df["DATE_LOCATION"].diff().dt.days
# 第一个行的diff是NaN,标记为新组;日期差不等于1的也是新组
df["group_id"] = (df["date_diff"] != 1).cumsum()

# 4. 按组计算每个连续段的天数和总销量
grouped = df.groupby("group_id").agg(
    days=("DATE_LOCATION", lambda x: (x.max() - x.min()).days + 1),
    total_sold=("Sold", "sum")
).reset_index()

# 5. 定义天数区间映射函数
def map_days_interval(days):
    if 1 <= days <= 3:
        return "1-3"
    elif 4 <= days <= 7:
        return "4-7"
    elif 8 <= days <= 15:
        return "8-15"
    else:
        return ">16"

grouped["Days"] = grouped["days"].apply(map_days_interval)

# 6. 按区间汇总总销量,确保所有区间都显示(即使销量为0)
result = grouped.groupby("Days")["total_sold"].sum().reindex(
    ["1-3", "4-7", "8-15", ">16"], fill_value=0
).reset_index(name="Sold")

print(result)

代码解释

  1. 日期预处理:转换为datetime类型并排序是关键,确保我们能正确识别连续日期。
  2. 连续分组标记:用diff()计算相邻日期的差值,当差值不等于1天时,说明是新的连续段,用cumsum()生成唯一的组ID。
  3. 分组计算:对每个连续组,计算天数(最大日期-最小日期+1)和该组的总销量。
  4. 区间映射与汇总:把每个组的天数映射到目标区间,最后汇总每个区间的总销量,并用reindex确保所有区间都显示(即使没有对应数据,销量为0)。

运行结果(匹配你的期望输出)

Days  Sold
0    1-3    20
1    4-7     7
2   8-15     0
3   >16      0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:58:28