我有一张表格,其价值如下:
AirTemperature AirHumidity SoilTemperature SoilMoisture LightIntensity WindSpeed Year Month Day Hour Minute Second TimeStamp MonthCategorical TimeOfDay
18 84 17 41 40 4 2016 1 1 6 1 1 10106 January Day
20 88 22 92 31 0 2016 1 1 7 1 1 10107 January Day
23 1 22 59 3 0 2016 1 1 8 1 1 10108 January Day
23 3 22 72 41 4 2016 1 1 9 1 1 10109 January Day
24 63 23 83 85 0 2016 1 1 10 1 1 10110 January Day
29 73 27 50 1 4 2016 1 1 11 1 1 10111 January Day
28 37 30 46 29 3 2016 1 1 12 1 1 10112 January Day
如下所示:
我想计算每天的平均条件(即第1,2,3,4天的平均温度和第1,2,3,4天的平均空气湿度)。我想用这些值创建一个新的csv。所以输出有所有条件的年,月,日,meanAirTemp,MeanAirHumidity等。
我使用以下代码来获取一个条件:
NightTimeTemperatures = pd.read_csv('MonthlyDataSplit/Night/MeanNightlyConditions.csv')
MeanMonthlyNightlyTemperatures = NightTimeTemperatures.groupby('Month')['AirTemperature'].mean().reset_index(name='MeanAirTemperature')
MeanMonthlyNightlyTemperatures.to_csv(r'MonthlyDataSplit/Day/SummaryMeanNightlyTemps.csv')
但是我想扩展它以适应所有条件。如下所示:
DayTimeTemperatures = pd.read_csv('MonthlyDataSplit/Day/MeanDailyConditions.csv')
MeanMonthlyDailyTemperatures = DayTimeTemperatures.groupby('Month')['AirTemperature','AirHumidity', 'SoilTemperature', 'SoilMoisture', 'LightIntensity', 'WindSpeed'].mean().reset_index(name='meanAirTemperature', 'meanAirHumidity', 'meanSoilTemperature', 'meanSoilMoisture','meanLightIntensity','meanWindSpeed')
MeanMonthlyDailyTemperatures.to_csv(r'MonthlyDataSplit/Day/SummaryMeanDailyConditions.csv')
答案 0 :(得分:1)
IIUC您可以mean
使用过滤列Interfaces
:
subset
答案 1 :(得分:1)
如果要使用不同的聚合函数,可以使用grp.agg()
函数,为不同的列指定不同的聚合函数:
print(df.groupby(['Year','Month','Day']).agg(
{'AirTemperature': 'mean',
'AirHumidity': 'mean',
'SoilTemperature': 'max'
}).reset_index())
输出:
Year Month Day AirTemperature SoilTemperature AirHumidity
0 2016 1 1 23.571429 30 49.857143