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

Pandas将年份、月份整数列转换为Datetime并计算季度平均值的问题

问题原因

你之前的代码仅向pd.to_datetime传入了单独的月份整数列,pandas默认会将这类整数识别为自1970-01-01 00:00:00起的纳秒时间戳,因此会得到全是1970年的错误日期结果。

实现方案

有两种常用方案可以实现需求:

方案1:先转datetime再提取季度(适合后续还要做其他时间相关计算的场景)

# 组合year、month列生成标准日期列,默认补1号作为日
df['date'] = pd.to_datetime(df[['year', 'month']].assign(day=1))
# 从日期列提取季度
df['Quarter Q'] = df['date'].dt.quarter
# 按年份、季度分组计算data列的平均值
result = df.groupby(['year', 'Quarter Q'], as_index=False)['data'].mean()

方案2:直接通过整数运算计算季度(更高效,不需要生成日期列)

# 公式:(月份-1)整除3 +1,直接得到所属季度
df['Quarter Q'] = (df['month'] - 1) // 3 + 1
# 分组求平均值
result = df.groupby(['year', 'Quarter Q'], as_index=False)['data'].mean()

如果需要和示例格式对齐小数位数,可以在求均值后加.round(9)调整精度,最终result的输出就和期望结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:15:02