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

如何使用Pandas按每月23日至次月23日进行自定义月度聚合?

按自定义日期区间(每月23日至次月23日)汇总inventory数据

原数据构造代码

import pandas as pd

tidx = pd.date_range('2022-10-01', periods=10, freq='10D') 
data_frame = pd.DataFrame(1, columns=['inventory'], index=tidx)

解决方案思路

resample默认按自然月边界分组,要实现自定义的“每月23日到次月23日”区间,核心是调整日期的分组基准:将每个日期减去23天,这样原区间内的日期会被归到同一个基准月,再用resample按月份汇总,最后还原索引日期即可。

实现代码

# 调整索引,将日期映射到对应的基准月(减去23天)
adjusted_index = data_frame.index - pd.Timedelta(days=23)
# 按基准月重采样求和
sum_result = data_frame.set_index(adjusted_index).resample('M')['inventory'].sum()
# 将结果索引加回23天,得到区间的结束日期
sum_result.index = sum_result.index + pd.Timedelta(days=23)
# 命名索引明确含义
sum_result.index.name = '区间结束日期'

print(sum_result)

输出结果

区间结束日期
2022-10-23    3
2022-11-23    3
2022-12-23    3
2023-01-23    1
Name: inventory, dtype: int64

结果说明

  • 2022-10-23对应区间:2022-09-23 ~ 2022-10-23,包含原数据中的2022-10-01、2022-10-11、2022-10-21,总和为3
  • 2022-11-23对应区间:2022-10-23 ~ 2022-11-23,包含原数据中的2022-10-31、2022-11-10、2022-11-20,总和为3
  • 以此类推,最后一个区间2022-12-23 ~ 2023-01-23仅包含2022-12-30,总和为1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:55:27