首页 > 解决方案 > 如何对大于0的数据进行分组和平均?

问题描述

我每 5 分钟有一个包含传感器数据的巨大数据框。我在周数列中添加了。

我想按周总结阳光传感器列,但想平均温度列(if temp > 0)。

ClimateDF.groupby('week').agg({'sunlight': 'sum', 'Temp': 'mean'})

这可行,但我将如何添加条件?例如只平均温度if temp > 0等?

标签: pythonpandasdataframe

解决方案


您可以编写一个单独的函数,然后在聚合中使用它。

def my_func(x):
    return x[x>0].mean()

ClimateDF.groupby('week').agg({'sunlight': 'sum', 'Temp': my_func})

SH-SF 已经提到了其他方法。这样做的好处是您可以根据需要调整复杂的功能和任意数量的功能。


推荐阅读