如何在Pandas/Python中按星期几计算平均骑行次数
按星期几计算日均骑行次数
我有一个包含500万行、覆盖12个月数据的DataFrame(命名为copydf),其中包含day_of_week(取值为周一至周日)列和唯一标识列ride_id。需要按星期几计算平均骑行次数。
目前已经通过以下代码算出每周各天的总骑行次数:
copydf.groupby(['day_of_week']).agg(number_of_rides=('day_of_week', 'count'))
但尝试以下两种方法计算平均次数均失败:
第一种方法:
copydf.groupby(['day_of_week']).agg(number_of_rides=('ride_id', 'count')).mean()
第二种方法:
avg_days = copydf.groupby(['day_of_week']).agg(number_of_rides=('ride_id', 'count')) avg_days.groupby(['day_of_week']).agg('number_of_rides', 'mean')
期望输出
我需要的结果是两种形式之一:
- 包含
day_of_week、number_of_rides、avg_num_of_ride三列的DataFrame - 仅包含
day_of_week(或weekday_num)和avg_num_of_rides两列的DataFrame
DataFrame示例
ride_id rideable_type started_at ended_at start_station_name start_station_id end_station_name end_station_id start_lat start_lng end_lat end_lng member_or_casual ride_length year month day_of_week hour weekday_num 0 9DC7B962304CBFD8 electric_bike 2021-09-28 16:07:10 2021-09-28 16:09:54 Streeter Dr & Grand Ave 13022 Streeter Dr & Grand Ave 13022 41.89 -87.68 41.89 -87.67 casual 2 2021 September Tuesday 16 1 1 F930E2C6872D6B32 electric_bike 2021-09-28 14:24:51 2021-09-28 14:40:05 Streeter Dr & Grand Ave 13022 Streeter Dr & Grand Ave 13022 41.94 -87.64 41.98 -87.67 casual 15 2021 September Tuesday 14 1 2 6EF72137900BB910 electric_bike 2021-09-28 00:20:16 2021-09-28 00:23:57 Streeter Dr & Grand Ave 13022 Streeter Dr & Grand Ave 13022 41.81 -87.72 41.80 -87.72 casual 3 2021 September Tuesday 0 1
期望输出示例
number_of_rides average_number_of_rides day_of_week Saturday 964079 50.4 Sunday 841919 70.9 Wednesday 840272 90.2 Thursday 836973 77.2 Friday 818205 34.4 Tuesday 814496 34.4 Monday 767002 200.3
再次说明:已算出每周各天的总骑行次数,仅需添加平均次数列,或生成仅包含星期几与平均次数的DataFrame。
内容的提问来源于stack exchange,提问作者Kdott
相关产品推荐
相关产品推荐

