您好,登錄后才能下訂單哦!
今天小編給大家分享一下pandas如何實現(xiàn)滑動窗口的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
窗口函數(shù)(Window Function)是一種在關系型數(shù)據(jù)庫中使用的函數(shù),通常用于計算某個范圍內的數(shù)據(jù)。在數(shù)據(jù)分析中,窗口函數(shù)也是一種非常有用的工具,可以輕松地對數(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è)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。