📜  Python|熊猫 dataframe.rolling()

📅  最后修改于: 2022-05-13 01:54:30.181000             🧑  作者: Mango

Python|熊猫 dataframe.rolling()

Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas是使导入和分析数据变得更加容易的软件包之一。
Pandas dataframe.rolling()函数提供了滚动窗口计算的功能。滚动窗口计算的概念主要用于信号处理和时间序列数据。用非常简单的话来说,我们一次取一个大小为 k 的窗口,并对其执行一些所需的数学运算。大小为 k 的窗口意味着一次有 k 个连续值。在一个非常简单的情况下,所有“k”值的权重相同。

注意: freq 关键字用于通过重新采样数据使时间序列数据符合指定的频率。这是使用 resample() 的默认参数完成的(即使用平均值)。
如果 win_type=none,则窗口中的所有值均加权。还有各种其他类型的滚动窗口类型。要了解有关其他滚动窗口类型的更多信息,请参阅此 scipy 文档。
有关代码中使用的 CSV 文件的链接,请单击此处。这是苹果公司从 (13-11-17) 到 (13-11-18) 为期 1 年的股价数据
示例 #1:在股票收盘价列上使用大小为 3 的窗口的滚动总和

Python3
# 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]


Python3
# 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()


Python3
# 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()


Python3

# 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。我们使用默认窗口类型,即无。所以所有的值都会被平均加权。

Python3

# 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()

输出 :