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

Pandas按日期列聚合:如何去除时间戳保留纯日期格式?

解决方法

要将分组后Date列表中的时间戳去除,转成YYYY-MM-DD格式,有两种直接可行的方式:

方式一:聚合时直接处理Date列

修改原代码的聚合逻辑,对Date列使用自定义lambda函数,将每个datetime对象格式化为指定字符串后再生成列表:

import pandas as pd

# 确保Date列是datetime类型(如果还不是的话)
df1['Date'] = pd.to_datetime(df1['Date'])

df2 = df1.sort_values(['Date'], ascending=False).groupby(['Remarks'])['dr','cr','Date'].agg(
    {
        'dr': ['sum', list],
        'cr': ['sum', list],
        'Date': lambda x: x.dt.strftime('%Y-%m-%d').tolist()
    }
).reset_index()

方式二:先预处理Date列再聚合

先给原数据新增一列日期字符串格式的列,再基于该列进行分组聚合:

import pandas as pd

df1['Date'] = pd.to_datetime(df1['Date'])
# 新增格式化后的日期列
df1['Date_formatted'] = df1['Date'].dt.strftime('%Y-%m-%d')

df2 = df1.sort_values(['Date'], ascending=False).groupby(['Remarks'])['dr','cr','Date_formatted'].agg(
    {
        'dr': ['sum', list],
        'cr': ['sum', list],
        'Date_formatted': list
    }
).reset_index()

# 可选:将列名改回Date
df2 = df2.rename(columns={'Date_formatted': 'Date'})

两种方式最终得到的Date列表都会是['2022-06-28']这类不含时间戳的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:05:23