如何在Pandas DataFrame中同时参考两列遍历行,按时间和车道计算平均速度
按时间和车道分组计算平均速度
你可以通过Pandas的groupby方法同时基于time和lane两列分组,再对speed_InMeterS列计算平均值,具体实现如下:
方法一:生成分组后的结果DataFrame
import pandas as pd # 对time和lane分组,计算speed_InMeterS的均值 result_df = df.groupby(['time', 'lane'])['speed_InMeterS'].mean().reset_index()
groupby(['time', 'lane']):将数据按时间+车道的组合进行分组,确保同一时间同一车道的记录被归为一组.mean():计算每组内speed_InMeterS的平均值.reset_index():将分组后的索引(time和lane)转换为普通列,得到结构清晰的结果表
方法二:在原DataFrame中新增平均速度列
如果需要保留原始数据结构,同时为每一行添加其对应时间+车道的平均速度,可以用transform:
df['lane_time_avg_speed'] = df.groupby(['time', 'lane'])['speed_InMeterS'].transform('mean')
这样原DataFrame会新增一列lane_time_avg_speed,每行的值就是该行所属时间和车道的平均速度。
内容的提问来源于stack exchange,提问作者Mustybichi
相关产品推荐
相关产品推荐

