python rolling函数(pandas滚动计算)51

作者 : 慕源网 本文共1899个字,预计阅读时间需要5分钟 发布时间: 2021-12-10 共329人阅读

python rolling函数

pandas中的移动窗口函数,rolling函数提供滚动窗口计算。来显示该移动窗口函数的功能。

本文是Python Pandas教程系列的一部分,您可以点击Python Pandas使用教程查看所有。

python rolling函数(pandas滚动计算)51

Pandas rolling的语法

下面给出了 pandas滚动计算的语法:

DataFrame.rolling(min_periods=None, window, win_type=None, centre=False, axis=0, on=None, closed=None)
参数: window intoffset, 或 BaseIndexer subclass

移动窗口的大小。这是用于计算统计量的观测数。

每个窗口的大小都是固定的。

如果它是一个偏移量,

那么这将是每个窗口的时间段。

每个窗口的大小将根据时间段内的观察结果而变化。

这只对类似日期时间的索引有效。

如果传递了BaseIndexer子类,

则根据定义的get_window_bounds方法计算窗口边界。

其他rolling关键字参数,即min_period

centerclosed将被传递给get_window_bounds

min_periods :int, 默认None

窗口中需要有一个值的最小观察次数(否则结果为NA)。

对于由偏移量指定的窗口,min_period默认为1。

否则,min_period将默认为窗口的大小。

center :bool, 默认为 False

在窗口的中心设置标签。

win_type :str, 默认为 None

提供一个窗口类型。如果为None

所有的点都是均匀加权。

请参阅下面的注释以获得更多信息。

on :str, 可选

对于DataFrame

是类似于datetime的列或用于计算rolling窗口的多索引级别,

而不是DataFrame的索引。

提供的整数列将被忽略并从结果中排除,

因为不使用整数索引计算滚动窗口。

axis int 或 str, 默认为 0

closed :str, 默认为 None

使区间在 ‘right’‘left’ ,‘both’ 

或 ‘neither'端点上关闭。

对于基于偏移的窗口,默认为“right”

对于固定的窗口,默认为'both'

其余的情况没有实现固定窗口。

返回值: DataFrame

针对特定操作的窗口或rolling子类

在 Pandas Dataframe 中,rolling() 函数是如何工作的?

下面给出了python rolling函数的工作原理:

示例#1

代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({'S': [1, 4, 5, np.nan, 7]})
df.rolling(1, win_type='triang').sum()
print(df.rolling(1, win_type='triang').sum())

输出:

python rolling函数(pandas滚动计算)51

在上面的程序中,我们首先分别导入pandas 和numpy 库。然后我们定义dataframe。创建dataframe后,我们使用rolling()函数,利用窗口类型tri,求窗口长度为1的函数之和。

示例#2

代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({'S': [1, 4, 5, np.nan, 7]})
df.rolling(3).sum()
print(df.rolling(3).sum())

输出:

python rolling函数(pandas滚动计算)51

在上面的程序中,与前面的程序类似,我们首先导入 pandas 和 numpy 库,然后创建dataframe。使用rolling()函数通过使用窗口长度3和窗口类型tri来查找dataframe df中定义的所有值的总和。

示例 #3

代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({'S': [1, 4, 5, np.nan, 7]}, index = [pd.Timestamp('20130302 07:00:01'),
pd.Timestamp('20130305 07:00:04'),
pd.Timestamp('20130305 09:00:05'),
pd.Timestamp('20130305 09:00:06'),
pd.Timestamp('20130305 09:00:07')])
df.rolling('3s').sum()
print(df.rolling('3s').sum())

输出:

python rolling函数(pandas滚动计算)51

总结

这是 python rolling函数的指南。这里我们讨论一下pandas Dataframe中的rolling()函数是如何滚动计算的


慕源网 » python rolling函数(pandas滚动计算)51

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录