使用Python Pandas从文本文件计算出租车行驶数据的总和、次数及平均值
解决方案
首先,读取无表头的CSV文件时,建议先给列指定名称,避免后续用索引操作的麻烦:
import pandas as pd # 读取文件,指定列名 df = pd.read_csv('你的文件名.csv', names=['taxi_id', 'mileage'])
接下来,使用groupby配合agg方法,一次性完成三个统计指标的计算,还可以对平均里程设置精度:
# 分组聚合计算 result = df.groupby('taxi_id')['mileage'].agg( 总行驶里程='sum', 行驶次数='count', 平均行驶里程=lambda x: round(x.mean(), 2) ).reset_index() print(result)
输出结果(对应你的示例数据)
taxi_id 总行驶里程 行驶次数 平均行驶里程 0 00000 86 2 43.00 1 00001 54 2 27.00 2 00002 54 1 54.00 3 00004 20 2 10.00 4 00005 49 3 16.33
补充说明
如果不想提前指定列名,也可以用原索引操作,代码如下:
result = df.groupby(df.columns[0])[df.columns[1]].agg( 总行驶里程='sum', 行驶次数='count', 平均行驶里程=lambda x: round(x.mean(), 2) ).reset_index()
不过指定列名的方式可读性更强,更推荐。
内容的提问来源于stack exchange,提问作者deepak
相关产品推荐
相关产品推荐

