我有以下数据框:

Trip_ID Trip_Trajectory Trip_Distance Trip_Speed
1001    1                15            2
1001    2                10            0
1001    3                20            6


我想使用Groupby汇总数据。我得到这个结果:

Trip_ID Trip_Distance Trip_Speed
1001    45            2,67


这是我现在使用的代码:

dataset_agg = dataset.groupby('Trip_ID').agg({'Trip_Distance': ['sum'], 'Trip_Speed': ['mean']})


但是我需要在“ Trip_Speed”列中排除零以获得以下结果:

Trip_ID Trip_Distance Trip_Speed
1001    45            4


提前致谢

最佳答案

用NaN替换零,在聚合过程中将忽略NaN。

(df.replace(0, np.nan)
   .groupby('Trip_ID', as_index=False)
   .agg({'Trip_Distance': 'sum', 'Trip_Speed': 'mean'}))

   Trip_ID  Trip_Distance  Trip_Speed
0     1001             45         4.0

关于python - 使用 Pandas 计算平均值时排除列中的零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56546812/

10-13 22:18