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

订单日期格式处理与groupby按月分组可视化问题及产品类型预测需求

解决方案

一、修复日期索引的Datetime类型问题

1. 转换原始日期列为Datetime类型

先确保日期列(report)是真正的datetime类型,而非字符串。如果原数据是DD-MM-YY格式,执行以下代码:

import pandas as pd
# 转换DD-MM-YY格式的日期字符串为datetime
df['report'] = pd.to_datetime(df['report'], format='%d-%m-%y')
# 若数据是示例中的YYYY-MM-DD格式,直接用下方代码
# df['report'] = pd.to_datetime(df['report'])

2. 按月分组并保留Datetime索引

不要将索引转为MM-YY字符串,用pd.Grouper按月份聚合,确保索引保持datetime类型,图表工具即可正常识别:

# 按月聚合所需指标(示例为订单数、总重量、总包裹数,可按需调整)
monthly_summary = df.groupby(pd.Grouper(key='report', freq='M')).agg(
    total_orders=('order', 'count'),
    total_weight=('weight', 'sum'),
    total_pacs=('pacs', 'sum')
).reset_index()

# 若需将日期显示为每月第一天,执行以下转换(仍保留datetime类型)
monthly_summary['report'] = monthly_summary['report'].dt.to_period('M').dt.start_time

如果可视化时需要MM-YY格式的标签,只需在绘图时设置坐标轴格式,不要修改索引本身的类型。

二、按产品类型整理数据用于预测

假设数据包含product_type列,以下两种方式可快速整理出适合分析和预测的结构:

1. 使用透视表(Pivot Table)

# 创建按月份、产品类型聚合的透视表
product_monthly_pivot = pd.pivot_table(
    df,
    index=pd.Grouper(key='report', freq='M'),  # 行:月份(datetime类型)
    columns='product_type',  # 列:产品类型
    values=['order', 'weight', 'pacs'],  # 要聚合的指标
    aggfunc='sum'  # 聚合方式,可改为count等
)
# 填充缺失值(某月份无某产品订单时补0)
product_monthly_pivot = product_monthly_pivot.fillna(0)

2. 使用Groupby + Unstack

这种方式更灵活,适合自定义聚合逻辑:

# 按月份和产品类型分组聚合
product_monthly = df.groupby([pd.Grouper(key='report', freq='M'), 'product_type']).agg(
    total_orders=('order', 'sum'),
    total_weight=('weight', 'sum')
).unstack('product_type')

# 填充缺失值
product_monthly = product_monthly.fillna(0)

整理后的数据可直接用于时间序列预测(如ARIMA、Prophet等模型),因索引是正确的datetime类型,模型能识别时间顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:35:19