pandas - how can we give index while calculating 3 days moving average -


i have data sets below , want calculate max value 3 days moving average , tried code

pd.rolling_mean(data['prec'], 3).max() 

this code gives moving average without date

      year  month  day  prec 0     1981      1    1   1.5 1     1981      1    2   0.0 2     1981      1    3   0.0 3     1981      1    4   0.4 4     1981      1    5   0.0 5     1981      1    6   1.0 6     1981      1    7   1.9 7     1981      1    8   0.6 8     1981      1    9   3.7 9     1981      1   10   0.0 10    1981      1   11   0.0 11    1981      1   12   0.0 12    1981      1   13   0.0 13    1981      1   14  12.2 14    1981      1   15   1.7 15    1981      1   16   0.6 16    1981      1   17   0.9 17    1981      1   18   0.6 18    1981      1   19   0.4 19    1981      1   20   0.2 20    1981      1   21   1.4 21    1981      1   22   3.2 22    1981      1   23   0.0 

the format want

 year  month  day   prec  ....  ..     ..     ... 

can solve problem

assign result of pd.rolling_mean or pd.rolling_max dataframe column:

import pandas pd df = pd.read_table('data', sep='\s+')  df['moving average'] = pd.rolling_mean(df['prec'], 3) df['max of moving average'] = pd.rolling_max(df['moving average'], 3) 

yields

in [32]: df out[32]:      year  month  day  prec  moving average  max of moving average 0   1981      1    1   1.5             nan                    nan 1   1981      1    2   0.0             nan                    nan 2   1981      1    3   0.0    5.000000e-01                    nan 3   1981      1    4   0.4    1.333333e-01                    nan 4   1981      1    5   0.0    1.333333e-01               0.500000 5   1981      1    6   1.0    4.666667e-01               0.466667 6   1981      1    7   1.9    9.666667e-01               0.966667 7   1981      1    8   0.6    1.166667e+00               1.166667 8   1981      1    9   3.7    2.066667e+00               2.066667 9   1981      1   10   0.0    1.433333e+00               2.066667 10  1981      1   11   0.0    1.233333e+00               2.066667 11  1981      1   12   0.0    1.480297e-16               1.433333 12  1981      1   13   0.0    1.480297e-16               1.233333 13  1981      1   14  12.2    4.066667e+00               4.066667 14  1981      1   15   1.7    4.633333e+00               4.633333 15  1981      1   16   0.6    4.833333e+00               4.833333 16  1981      1   17   0.9    1.066667e+00               4.833333 17  1981      1   18   0.6    7.000000e-01               4.833333 18  1981      1   19   0.4    6.333333e-01               1.066667 19  1981      1   20   0.2    4.000000e-01               0.700000 20  1981      1   21   1.4    6.666667e-01               0.666667 21  1981      1   22   3.2    1.600000e+00               1.600000 22  1981      1   23   0.0    1.533333e+00               1.600000 

Comments