如何在DataFrame中获取各工作日的分组平均骑行次数
获取每个工作日的平均骑行次数
你之前的代码df.groupby('member_casual')['day_of_week'].value_counts().mean()会把所有分组后的骑行次数取整体平均值,所以只得到单一数值。要获取每个day_of_week的平均骑行次数,分两种场景处理:
场景1:不区分会员类型(member_casual)
假设你的DataFrame包含日期列(比如date),先统计每日的骑行次数,再按工作日分组计算平均值:
# 统计每天的骑行次数,关联对应的工作日 daily_rides = df.groupby(['date', 'day_of_week']).size() # 按工作日分组,计算该工作日的平均骑行次数 avg_rides_per_day = daily_rides.groupby('day_of_week').mean()
如果没有单独的日期列,仅需统计每个工作日的总骑行次数(可理解为所有该工作日的累计次数):
total_rides_per_day = df['day_of_week'].value_counts().sort_index()
场景2:区分会员类型
同样基于日期列,先按会员类型、日期、工作日分组统计每日次数,再计算每个会员类型下各工作日的平均值:
# 分会员类型统计每日骑行次数 daily_rides_by_member = df.groupby(['member_casual', 'date', 'day_of_week']).size() # 计算每个会员类型下各工作日的平均骑行次数 avg_rides_by_member_day = daily_rides_by_member.groupby(['member_casual', 'day_of_week']).mean()
这样就能得到每个工作日(或分会员类型的每个工作日)的平均骑行次数,结果是一个带有day_of_week(或多级索引)的Series,每个工作日对应一个平均数值。
内容的提问来源于stack exchange,提问作者Mostafa Waleed
相关产品推荐
相关产品推荐

