如何对大于0的数据进行分组和平均?

时间:2019-09-14 01:31:40

标签: python pandas dataframe

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

我想按星期汇总阳光传感器列,但想对温度列(if temp > 0)进行平均。

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

这有效,但是我要如何添加条件?例如,仅平均温度if temp > 0等?

2 个答案:

答案 0 :(得分:2)

IIUC,这就是您所需要的

SELECT country, state1, city, street, ID, lastname + ', ' + firstname AS Name,
       SUM(salary) AS 'AnnualSalary'
FROM geography1 JOIN
     address
     ON street = streetname JOIN 
     employee ON ID = PID
WHERE termdate IS NULL
GROUP BY GROUPING SETS ( (country, state1, city, street, gender, lastname, firstname), (country), () );

答案 1 :(得分:2)

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

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

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

SH-SF已经提到了其他方法。这样做的好处是您可以对复杂的功能以及所需的任意多个功能进行调整。