在csv

时间:2016-03-11 10:14:02

标签: python csv pandas mean

我有一张表格,其价值如下:

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

如下所示:

enter image description here

我想计算每天的平均条件(即第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')

2 个答案:

答案 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