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

如何对Pandas DataFrame按日期聚合并求和cnt字段?

按日期合并小时级自行车租赁数据的正确实现及错误修复

正确实现方法

别用循环折腾,Pandas自带的groupby就能高效搞定,步骤如下:

  1. 先确保datetime字段是Pandas的日期类型(如果原始数据是字符串格式的话):
import pandas as pd
df['datetime'] = pd.to_datetime(df['datetime'])
  1. 按日期分组并对cnt求和,两种常用方式任选:
  • 提取纯日期对象作为分组键:
daily_summary = df.groupby(df['datetime'].dt.date)['cnt'].sum().reset_index()
# 可选:重命名列让结果更直观
daily_summary.columns = ['date', 'total_daily_cnt']
  • 先把datetime向下取整到当天(保留datetime类型,之后再转纯日期也可以):
daily_summary = df.groupby(df['datetime'].dt.floor('D'))['cnt'].sum().reset_index()
# 如果要去掉时间部分,转成纯日期格式
daily_summary['datetime'] = daily_summary['datetime'].dt.date

最终得到的daily_summary就是按日期聚合后的结果,每行对应一天的总自行车租赁量。

循环代码报错原因

你碰到的TypeError: can only concatenate str (not "int") to str,大概率是循环里不小心把字符串和整数做了拼接操作:

  • 比如你把日期转成了字符串(用split或strftime之类的方法),然后错误地把这个字符串和cnt(整数类型)直接相加,类似date_str + row['cnt'];
  • 或者在构建结果字典/列表时,对数据类型处理混乱,把整数当成字符串来拼接。

另外多说一句:循环处理Pandas数据本来就不推荐,不仅容易犯这类低级错误,数据量大的时候速度会慢到离谱,用groupby这种矢量化操作才是正确姿势。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:35:03