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

时间序列分析:如何将DataFrame数据按月分组实现分月查看分析

Pandas DataFrame按月份分组实现方法

前置准备

首先确保DataFrame中的日期列已转换为datetime类型:

import pandas as pd
# 转换Date列为datetime格式
df['Date'] = pd.to_datetime(df['Date'])

常用实现方案

方案1:按月份生成分组对象(适合批量处理所有月份数据)

  • 仅按月份分组(不同年份的同月份数据会合并到同一组):
# 生成按月份分组的对象
month_groups = df.groupby(df['Date'].dt.month)
# 提取1月份的所有数据生成单独DataFrame
jan_df = month_groups.get_group(1)
  • 按年月分组(不同年份的同月份分为不同组,更常用):
# 生成按年月分组的对象
year_month_groups = df.groupby(df['Date'].dt.to_period('M'))
# 提取2005年1月的单独DataFrame
jan_2005_df = year_month_groups.get_group('2005-01')
  • 遍历所有分组做批量分析示例:
for month, month_df in year_month_groups:
    # month为年月标识,month_df为对应月份的独立DataFrame
    print(f"月份:{month},数据条数:{len(month_df)}")
    # 此处填入单月数据的分析逻辑

方案2:直接筛选单月数据(适合临时提取某几个月份)

不需要生成分组对象,直接用布尔索引筛选:

  • 提取所有年份1月的数据:
jan_df = df[df['Date'].dt.month == 1]
  • 提取指定年份指定月份的数据:
target_df = df[(df['Date'].dt.year == 2005) & (df['Date'].dt.month == 1)]

可选扩展

如果你需要结合日期和时间两列生成完整时间戳再分组,可以先合并两列:

df['full_datetime'] = pd.to_datetime(df['Date'].astype(str) + ' ' + df['Time'])
# 后续用full_datetime列做上述分组/筛选操作即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:27:03