python 窗口函数,Pandas窗口函数

本篇文章帮大家学习Pandas窗口函数,包含了Pandas窗口函数使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。

为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重。 其中包括总和,均值,中位数,方差,协方差,相关性等。

下来学习如何在DataFrame对象上应用上提及的每种方法。

.rolling()函数

这个函数可以应用于一系列数据。指定window=n参数并在其上应用适当的统计函数。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 4),

index = pd.date_range('1/1/2020', periods=10),

columns = ['A', 'B', 'C', 'D'])

print (df.rolling(window=3).mean())

执行上面示例代码,得到以下结果 -

A B C D

2020-01-01 NaN NaN NaN NaN

2020-01-02 NaN NaN NaN NaN

2020-01-03 -0.306293 0.214001 -0.076004 -0.200793

2020-01-04 0.236632 -0.437033 0.046111 -0.252062

2020-01-05 0.761818 -0.181635 -0.546929 -0.738482

2020-01-06 1.306498 -0.411834 -0.680948 -0.070285

2020-01-07 0.956877 -0.749315 -0.503484 0.160620

2020-01-08 0.354319 -1.067165 -1.238036 1.051048

2020-01-09 0.262081 -0.898373 -1.059351 0.342291

2020-01-10 0.326801 -0.350519 -1.064437 0.749869

注 - 由于窗口大小为3(window),前两个元素有空值,第三个元素的值将是n,n-1和n-2元素的平均值。这样也可以应用上面提到的各种函数了。

.expanding()函数

这个函数可以应用于一系列数据。 指定min_periods = n参数并在其上应用适当的统计函数。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 4),

index = pd.date_range('1/1/2018', periods=10),

columns = ['A', 'B', 'C', 'D'])

print (df.expanding(min_periods=3).mean())

执行上面示例代码得到以下结果 -

A B C D

2018-01-01 NaN NaN NaN NaN

2018-01-02 NaN NaN NaN NaN

2018-01-03 -0.425085 -0.124270 -0.324134 -0.234001

2018-01-04 -0.293824 -0.038188 -0.172855 0.447226

2018-01-05 -0.516146 -0.013441 -0.384935 0.379267

2018-01-06 -0.614905 0.290308 -0.594635 0.414396

2018-01-07 -0.606090 0.121265 -0.604148 0.246296

2018-01-08 -0.597291 0.075374 -0.425182 0.092831

2018-01-09 -0.380505 0.074956 -0.253081 0.146426

2018-01-10 -0.235030 0.018936 -0.259566 0.315200

.ewm()函数

ewm()可应用于系列数据。指定com,span,halflife参数,并在其上应用适当的统计函数。它以指数形式分配权重。

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 4),

index = pd.date_range('1/1/2019', periods=10),

columns = ['A', 'B', 'C', 'D'])

print (df.ewm(com=0.5).mean())

执行上面示例函数,得到以下结果 -

A B C D

2019-01-01 1.047165 0.777385 -1.286948 -0.080564

2019-01-02 0.484093 -0.630998 -0.975172 -0.117832

2019-01-03 0.056189 0.830492 0.116325 1.005547

2019-01-04 -0.363824 1.222173 0.497901 -0.235209

2019-01-05 -0.260685 1.066029 0.391480 1.196190

2019-01-06 0.389649 1.458152 -0.231936 -0.481003

2019-01-07 1.071035 -0.016003 0.387420 -0.170811

2019-01-08 -0.573686 1.052081 1.218439 0.829366

2019-01-09 0.222927 0.556430 0.811838 -0.562096

2019-01-10 0.224624 -1.225446 0.204961 -0.800444

窗口函数主要用于通过平滑曲线来以图形方式查找数据内的趋势。如果日常数据中有很多变化,并且有很多数据点可用,那么采样和绘图就是一种方法,应用窗口计算并在结果上绘制图形是另一种方法。 通过这些方法,可以平滑曲线或趋势。

你可能感兴趣的:(python,窗口函数)