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

Python 3实现季度时间序列转月度:将季度行拆分为3条月度行

嘿,这个需求我之前做季度数据转月度的时候刚好碰到过,用Pandas有好几种靠谱的实现方式,给你详细说说:

方案一:用explode生成月度日期列表展开

这种方法直观,先给每个季度行生成对应的三个月日期列表,再拆分成多行,适合需要明确控制月度日期格式(月初/月末)的场景。

假设你的DataFrame长这样:

import pandas as pd

df = pd.DataFrame({
    'quarter_date': ['2023Q1', '2023Q2', '2023Q3'],
    'sales': [15000, 22000, 18000],
    'region': ['North', 'South', 'East']
})

步骤如下:

  1. 把季度字符串转成季度起始的datetime类型(比如2023Q1转成2023-01-01)
  2. 给每个季度生成对应的三个月日期(这里用月初MS频率,要是需要月末就换成M)
  3. 用explode把日期列表拆成单独行,最后清理多余列

代码实现:

# 转换季度日期为起始datetime
df['quarter_start'] = pd.to_datetime(df['quarter_date'])

# 生成每个季度对应的3个月度日期列表
df['month_dates'] = df['quarter_start'].apply(
    lambda x: pd.date_range(start=x, periods=3, freq='MS')
)

# 展开列表为多行,清理无关列
df_monthly = df.explode('month_dates').drop(columns=['quarter_date', 'quarter_start'])
df_monthly = df_monthly.rename(columns={'month_dates': 'month_date'})

最终输出的df_monthly就是每条季度数据拆成3条月度数据,其他字段完全保留。

方案二:用resample快速重采样填充

如果你的时间列已经是datetime类型,这个方法更简洁,利用Pandas的重采样功能直接生成月度数据,并用前向填充复制季度值。

代码示例:

# 先把季度日期转成datetime并设为索引
df_indexed = df.set_index(pd.to_datetime(df['quarter_date']))

# 按月度(月初)重采样,用前向填充复制季度数据
df_monthly = df_indexed.resample('MS').ffill().reset_index()
df_monthly = df_monthly.rename(columns={'index': 'month_date'})

注意:如果你的季度日期是季度末(比如2023-03-31),记得用origin参数调整重采样的起始点,避免日期偏移:

df_monthly = df_indexed.resample('MS', origin='start').ffill().reset_index()
方案三:用repeat复制行后计算日期

这种方法先把每行复制3次,再给每组复制行添加月份偏移量,适合需要自定义日期计算逻辑的场景。

代码示例:

# 复制每行3次,重置索引
df_repeated = df.loc[df.index.repeat(3)].reset_index(drop=True)

# 给每组3行添加0、1、2的月份偏移
df_repeated['month_offset'] = df_repeated.groupby(df_repeated.index // 3).cumcount()

# 计算月度日期:季度起始日期 + 月份偏移
df_repeated['month_date'] = pd.to_datetime(df_repeated['quarter_date']) + pd.offsets.MonthOffset(df_repeated['month_offset'])

# 清理多余列
df_monthly = df_repeated.drop(columns=['quarter_date', 'month_offset'])

这三种方法都能满足你的需求,选哪种看你对日期格式的要求和代码简洁性的偏好~

内容的提问来源于stack exchange,提问作者T.Steis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:44:23