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

如何用Pandas按日期(忽略时分秒)聚合相同日期行并求和

解决日期聚合问题的完整方案

刚接触Python遇到这类数据处理问题很正常,我帮你梳理下问题所在,再给出修正后的完整流程:

首先先指出你之前代码里的两个核心问题:

  1. 日期格式化代码有语法错误:format='%b %d %Y.%f'`里的引号没闭合,导致这段代码根本跑不通;
  2. 格式字符串和实际日期不匹配:你的日期是2018-04-08 15:52:26.110这种YYYY-MM-DD HH:MM:SS.ms格式,但你用了%b(月份缩写,比如Apr),完全不匹配,自然无法正确解析。

下面是修正后的完整代码,每一步都给你标注清楚:

修正后的代码流程

import pandas as pd

# 1. 读取原始Excel并处理目标列(不用反复存读Excel,直接内存操作)
df = pd.read_excel(f"{var}.xlsx")
# 选择第37列(索引36),注意用[36]而不是36,避免变成Series
df = df.iloc[:, [36]]
# 重命名列
df = df.rename(columns={'Prospect Dt. Cadastro': 'date'})

# 2. 正确解析日期并提取纯日期部分
# 你的日期是标准ISO格式,pd.to_datetime可以自动识别,不用指定format
df['date'] = pd.to_datetime(df['date'])
# 提取纯日期(转为字符串类型,方便后续分组)
df['date'] = df['date'].dt.date
# 如果你想保留datetime类型的日期(推荐做时间分析),可以用:
# df['date'] = df['date'].dt.floor('D')

# 3. 添加辅助列
df['value'] = 1
df['source'] = 'ANAPRO'

# 4. 按日期+source分组,对value求和
aggregated_df = df.groupby(['date', 'source'], as_index=False)['value'].sum()

# 5. 保存结果并验证
aggregated_df.to_excel('aggregated_payload.xlsx', index=False)
# 读取验证
result = pd.read_excel('aggregated_payload.xlsx')
print(result.head(10))

额外优化说明

  • 去掉了冗余的Excel读写步骤:你之前把列存成新Excel再读回来完全没必要,直接在内存里处理效率更高;
  • 分组逻辑更清晰:如果你的source列全是ANAPRO,也可以只按date分组,之后再统一添加source列;
  • 日期处理更稳妥:用dt.date提取纯日期,确保相同日期的行能被正确聚合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:05:33