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

如何让按月份聚合后的DATE列保持datetime格式而非字符串格式?

解决方法

方法1:分组时直接使用时期类型(推荐)

跳过字符串转换步骤,直接用dt.to_period('M')按月份维度分组,这样分组后的索引是专门用于时间周期的Period类型,后续可轻松转为datetime格式(默认取每月最后一天,也可指定取第一天):

# 按月份聚合统计
df1 = df1.groupby(df1['DATE'].dt.to_period('M')).agg(
    GROSS_ACTIVATIONS=('GROSS_ACTIVATION', 'sum')
)
# 将Period索引转为datetime(默认返回每月最后一天)
df1.index = df1.index.to_timestamp()
# 若需要每月第一天,可添加参数调整
# df1.index = df1.index.to_timestamp(freq='M', how='start')

方法2:将已生成的字符串索引转为datetime

如果已经完成字符串分组,直接用pd.to_datetime转换索引,注意指定与strftime一致的格式字符串,保证转换准确高效:

# 你原有的分组代码
df1 = df1.groupby(df1['DATE'].dt.strftime('%m-%Y')).agg(
    GROSS_ACTIVATIONS=('GROSS_ACTIVATION', 'sum')
)
# 转换字符串索引为datetime格式
df1.index = pd.to_datetime(df1.index, format='%m-%Y')

说明:方法1更高效,避免了字符串与datetime的来回转换;方法2适合已完成字符串分组后的补救场景,指定format参数能避免自动解析时的格式歧义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:05:57