数据框中每周/每月的小时平均值(移动平均值)

时间:2017-06-10 07:51:56

标签: python pandas dataframe average moving-average

我有一个数据框,每秒都有值的全年数据:

YYYY-MO-DD HH-MI-SS_SSS      TEMPERATURE (C)
2016-09-30 23:59:55.923       28.63
2016-09-30 23:59:56.924       28.61
2016-09-30 23:59:57.923       28.63
   ...                         ...
2017-05-30 23:59:57.923       30.02

我想创建一个新的数据框,它需要每周或每月的值,并在每天的同一小时内取平均值(移动平均值,但每小时)。 因此月案的结果将是这样的:

       Date         TEMPERATURE (C)
2016-09 00:00:00       28.63
2016-09 01:00:00       27.53
2016-09 02:00:00       27.44
   ...
2016-10 00:00:00       28.61
   ...                  ...

我知道我每个月可以将df分成12 df并使用:

hour = pd.to_timedelta(df['YYYY-MO-DD HH-MI-SS_SSS'].dt.hour, unit='H')
df2 = df.groupby(hour).mean()

但我正在寻找一种更好更快的方式。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是转换日期和时间列的另一种方法:

groupby

此外,您可以{@ 1}}周和小时形成MultiIndex数据框(而不是创建和管理12个dfs):

df.groupby([df.datetime.dt.weekofyear, df.datetime.dt.hour]).mean()

enter image description here