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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。