溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pandas如何實現(xiàn)滑動窗口

發(fā)布時間:2023-03-31 11:46:05 來源:億速云 閱讀:173 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下pandas如何實現(xiàn)滑動窗口的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

介紹

窗口函數(shù)(Window Function)是一種在關系型數(shù)據(jù)庫中使用的函數(shù),通常用于計算某個范圍內的數(shù)據(jù)。在數(shù)據(jù)分析中,窗口函數(shù)也是一種非常有用的工具,可以輕松地對數(shù)據(jù)進行滑動窗口處理,計算移動平均值、移動總和等等。

示例數(shù)據(jù)

為了演示窗口函數(shù)的使用,我們將使用一個示例數(shù)據(jù)集,其中包含每月的銷售數(shù)據(jù)。

import pandas as pd
 
data = {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        'Sales': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]}
 
df = pd.DataFrame(data)
df
   Month  Sales
0    Jan     10
1    Feb     20
2    Mar     30
3    Apr     40
4    May     50
5    Jun     60
6    Jul     70
7    Aug     80
8    Sep     90
9    Oct    100
10   Nov    110
11   Dec    120

移動平均值

移動平均值是一種常見的窗口函數(shù),用于計算一段時間內的平均值。在pandas中,我們可以使用rolling函數(shù)來計算移動平均值。

df['MA'] = df['Sales'].rolling(window=3).mean()

在上面的代碼中,我們使用了rolling函數(shù),并將窗口大小設置為3,即計算每三個月的平均值。計算出的結果將存儲在一個名為“MA”的新列中。

移動總和

移動總和是另一種常見的窗口函數(shù),用于計算一段時間內的總和。在pandas中,我們可以使用rolling函數(shù)來計算移動總和。

df['MS'] = df['Sales'].rolling(window=3).sum()

在上面的代碼中,我們使用了rolling函數(shù),并將窗口大小設置為3,即計算每三個月的總和。計算出的結果將存儲在一個名為“MS”的新列中。

df['MA'] = df['Sales'].rolling(window=3).mean()
... 
df
   Month  Sales     MA
0    Jan     10    NaN
1    Feb     20    NaN
2    Mar     30   20.0
3    Apr     40   30.0
4    May     50   40.0
5    Jun     60   50.0
6    Jul     70   60.0
7    Aug     80   70.0
8    Sep     90   80.0
9    Oct    100   90.0
10   Nov    110  100.0
11   Dec    120  110.0

最大值和最小值

除了移動平均值和移動總和之外,我們還可以使用rolling函數(shù)來計算一段時間內的最大值和最小值。

df['Max'] = df['Sales'].rolling(window=3).max()
df['Min'] = df['Sales'].rolling(window=3).min()

在上面的代碼中,我們使用了rolling函數(shù),并將窗口大小設置為3,分別計算了最大值和最小值。計算出的結果將存儲在名為“Max”和“Min”的新列中。

df
   Month  Sales     MA    Max    Min    Sum
0    Jan     10    NaN    NaN    NaN    NaN
1    Feb     20    NaN    NaN    NaN    NaN
2    Mar     30   20.0   30.0   10.0   60.0
3    Apr     40   30.0   40.0   20.0   90.0
4    May     50   40.0   50.0   30.0  120.0
5    Jun     60   50.0   60.0   40.0  150.0
6    Jul     70   60.0   70.0   50.0  180.0
7    Aug     80   70.0   80.0   60.0  210.0
8    Sep     90   80.0   90.0   70.0  240.0
9    Oct    100   90.0  100.0   80.0  270.0
10   Nov    110  100.0  110.0   90.0  300.0
11   Dec    120  110.0  120.0  100.0  330.0

以上就是“pandas如何實現(xiàn)滑動窗口”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI