Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。 Pandas是其中的一种,使导入和分析数据更加容易。
Pandas dataframe.rolling()
函数提供滚动窗口计算的函数。滚动窗口计算的概念最主要用于信号处理和时间序列数据。简单地说,我们一次取一个窗口大小为k,并对其执行一些所需的数学运算。大小为k的窗口意味着一次有k个连续值。在非常简单的情况下,所有“ k”值均会被加权。
用法: DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)
参数:
window:移动窗口的大小。这是用于计算统计量的观察值的数量。每个窗口将是固定大小。如果其偏移,则这将是每个窗口的时间段。每个窗口的大小将根据time-period中包含的观察结果而变化。仅对类似日期时间的索引有效。
min_periods:窗口中具有值的最小观察数(否则结果为NA)。对于由偏移量指定的窗口,该窗口默认为1。
freq:在计算统计信息之前使数据符合的频率。指定为频率字符串或DateOffset对象。
center:将标签设置在窗口的中央。
win_type:提供窗口类型。请参阅下面的注释。
on:对于DataFrame,要在其上计算滚动窗口的列,而不是索引
closed:在“右侧”,“左侧”,“两个”或“两个都不”端点上关闭间隔。对于基于偏移的窗口,默认为“ right”。对于固定窗口,默认为“两个”。其余情况未针对固定窗口实施。
axis:整数或字符串,默认为0
注意:freq关键字用于通过对数据进行重采样来将时间序列数据确认为指定的频率。这是使用默认参数完成的resample()
(即使用均值)。
如果win_type = none,则将窗口中的所有值平均加权。还有各种其他类型的滚动窗口类型。要了解有关其他滚动窗口类型的更多信息,请参阅此scipy文档。
有关在“代码中使用”的CSV文件的链接,请单击此处。这是苹果从(13-11-17)到(13-11-18)持续1年的股价数据
范例1:收盘价列上带有大小为3的窗口的滚动总和
# importing pandas as pd
import pandas as pd
# By default the "date" column was in string format,
# we need to convert it into date-time format
# parse_dates =["date"], converts the "date" column to date-time format
# Resampling works with time-series data only
# so convert "date" column to index
# index_col ="date", makes "date" column
df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date")
# Printing the first 10 rows of dataframe
df[:10]
# 3 indicates the window size
# we have selected 'triang' type window
# which returns triangular type window
# sum() function find the sum over
# all the windows in our data frame
df.close.rolling(3, win_type ='triang').sum()
输出:
范例2:滚动窗口的意思是窗口大小为3。我们使用默认的窗口类型,即无。因此,所有值将被平均加权。
# importing pandas as pd
import pandas as pd
df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date")
# close is the column on which
# we are performing the operation
# mean() function finds the mean over each window
df.close.rolling(3).mean()
输出:
相关用法
- Python pandas.map()用法及代码示例
- Python Pandas Series.str.len()用法及代码示例
- Python Pandas.factorize()用法及代码示例
- Python Pandas TimedeltaIndex.name用法及代码示例
- Python Pandas dataframe.ne()用法及代码示例
- Python Pandas Series.between()用法及代码示例
- Python Pandas DataFrame.where()用法及代码示例
- Python Pandas Series.add()用法及代码示例
- Python Pandas.pivot_table()用法及代码示例
- Python Pandas Series.mod()用法及代码示例
- Python Pandas Dataframe.at[ ]用法及代码示例
- Python Pandas Dataframe.iat[ ]用法及代码示例
- Python Pandas.pivot()用法及代码示例
- Python Pandas dataframe.mul()用法及代码示例
- Python Pandas.melt()用法及代码示例
注:本文由纯净天空筛选整理自Shubham__Ranjan大神的英文原创作品 Python | Pandas dataframe.rolling()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。