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

Python按天聚合DataFrame:统计日行程数与平均行程时长

按天聚合行程数据:统计数量与平均时长

原始数据结构

trip_id     date    journey_duration    weekday
0   913460  2019-08-31  00:13:00    Sat
1   913459  2019-08-31  00:17:00    Sat
2   913455  2019-08-31  00:05:00    Sat
3   913454  2019-08-31  00:07:00    Sat
4   913453  2019-08-31  00:13:00    Sat
5   913452  2019-08-31  00:05:00    Sat
6   913451  2019-08-31  00:15:00    Sat
7   913450  2019-08-31  00:04:00    Sat
8   913449  2019-08-31  00:03:00    Sat
9   913448  2019-08-31  00:15:00    Sat
10  913443  2019-08-31  00:12:00    Sat
11  913442  2019-08-31  00:10:00    Sat
12  913441  2019-08-31  00:07:00    Sat
13  913440  2019-08-31  00:05:00    Sat
14  913435  2019-08-31  00:08:00    Sat
15  913434  2019-08-31  00:05:00    Sat
16  913433  2019-08-31  00:03:00    Sat
17  913432  2019-08-31  00:12:00    Sat
18  913431  2019-08-31  00:10:00    Sat
19  913429  2019-08-31  00:15:00    Sat

需求与现有问题

需要按天聚合数据:

  • 将trip_id转换为每日行程数量
  • 将journey_duration转换为每日平均时长

现有代码仅能统计行程数,但会丢失journey_duration字段:

trip_data = (pd.to_datetime(trip_data['date'])
       .dt.floor('d')
       .value_counts()
       .rename_axis('date')
       .reset_index(name='count'))

正确解决方案

使用groupby+agg同时完成两个字段的聚合,步骤如下:

1. 预处理字段(若需要)

如果date不是datetime类型、journey_duration是字符串格式,先转换:

import pandas as pd

# 将date转为datetime并按天取整
trip_data['date'] = pd.to_datetime(trip_data['date']).dt.floor('d')
# 将journey_duration转为timedelta类型(若原数据是字符串)
trip_data['journey_duration'] = pd.to_timedelta(trip_data['journey_duration'])

2. 按天聚合统计

# 按日期分组,同时统计行程数和平均时长
aggregated_data = trip_data.groupby('date').agg(
    daily_trip_count=('trip_id', 'count'),  # 统计每日行程数
    average_journey_duration=('journey_duration', 'mean')  # 计算每日平均时长
).reset_index()

代码说明

  • groupby('date'):以日期为分组依据
  • agg():指定每个字段的聚合规则,同时给结果列设置易懂的别名
  • reset_index():将date从索引列转为普通数据列,保持结构清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:51:02