Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 历年月移动平均数_Python_Numpy_Pandas - Fatal编程技术网

Python 历年月移动平均数

Python 历年月移动平均数,python,numpy,pandas,Python,Numpy,Pandas,我是熊猫的新手,希望您能指导我解决以下问题。我有一个如下所示的数据帧: In [88]: df.head() Out[88]: Jan Feb Mar Apr May Jun ... Dec Year ... 1758 13 15 14 5 5 5 ... 12 1759 11 10 7 4 3 6 ...

我是熊猫的新手,希望您能指导我解决以下问题。我有一个如下所示的数据帧:

In [88]: df.head()
Out[88]: 
       Jan  Feb  Mar  Apr  May  Jun  ...    Dec
Year                               ...     
1758    13   15   14    5    5    5  ...     12
1759    11   10    7    4    3    6  ...     11
1760    19   15   18    5   13    6  ...     11
1761    14   16   14    9    9   11  ...     10
1762    13   12   12    8    5    3  ...     11
我需要按以下方式计算每月移动平均数:

1761年3月的移动平均值=(1761年3月的值)/(1760年9月至1761年8月的值之和)


如果我使用pandas的滚动平均函数,我如何编写逻辑代码来检查特定点的前置行或后继行

最简单的方法是使用将数据重塑为长格式,这可以直接传递到滚动平均值

In [34]: pd.rolling_mean(df.stack(), window=12)
Out[34]: 
Year     
1758  Jan         NaN
      Feb         NaN
      Mar         NaN
      Apr         NaN
      May         NaN
      Jun         NaN
      Jul         NaN
      Aug         NaN
      Sep         NaN
      Oct         NaN
      Nov         NaN
      Dec    0.035038
1759  Jan   -0.076660
      Feb   -0.153907
      Mar   -0.286818
      Apr   -0.306684
      May   -0.159371
      Jun   -0.230627
      Jul   -0.175845