pandas DataFrame按城市分组多列汇总:统计车辆、客户、行程及里程时长
pandas按城市分组多指标统计实现方法
实现步骤
- 第一步:转换时长字段格式
从csv读取的journey_duration默认是字符串类型,需要先转成pandas的timedelta格式才能做时间运算:
import pandas as pd # 原有数据读取代码不变 df = pd.read_clipboard(sep=',') # 转换时长字段类型 df['journey_duration'] = pd.to_timedelta(df['journey_duration'])
- 第二步:分组聚合统计所有指标
用groupby结合agg方法,为不同指标指定对应的聚合规则,即可一次性完成所有统计需求:
fleet_summary = df.groupby('fleet', as_index=False).agg( 唯一vehicle_id数量=('vehicle_id', 'nunique'), 唯一customer_id数量=('customer_id', 'nunique'), 总行程数=('trip_id', 'count'), 总里程_英里=('distance_miles', 'sum'), 总时长_分钟=('journey_duration', lambda x: round(x.dt.total_seconds().sum() / 60, 2)) )
结果验证
用你提供的样本数据运行后,输出的汇总表和预期完全匹配:
| fleet | 唯一vehicle_id数量 | 唯一customer_id数量 | 总行程数 | 总里程_英里 | 总时长_分钟 |
|---|---|---|---|---|---|
| Provo | 4 | 4 | 4 | 3.867 | 29.42 |
| Salt Lake City | 2 | 1 | 2 | 3.096 | 28.77 |
内容的提问来源于stack exchange,提问作者Nhyi
相关产品推荐
相关产品推荐

