簡體   English   中英

在 pandas 軋制中應用定制 window function

[英]Apply custom window function in pandas rolling

我有一個 DataFrame,例如

df = pd.DataFrame([1,2,3,4,5,6,7,8,9])

現在我想應用滾動平均值,例如

df.rolling(window=3, win_type=None).mean()

這給了我一個均勻加權元素的結果。 現在我想更改 window function。 我知道,這可以通過將字符串(例如'hann' )傳遞給win_type參數來實現。

df.rolling(window=3, win_type='hann').mean()

現在對我來說有趣的一點是應用 window function,它使用指數衰減的權重,對“右側”的值賦予較高的權重,而對“更左側”的值賦予較低的權重。 這應該可以通過使用scipy.signal.windows.exponential並調整參數來實現。 但是,我正在努力傳遞這些參數,因為win_type只接受字符串。

當我嘗試win_type='exponential'我得到ValueError: exponential window requires tau

有人能告訴我如何將tau等參數傳遞給win_type甚至自己創建 window function 嗎?

答案在這里
重要的。 解決方案取決於 pandas 版本。
Python 通用

import pandas as pd
df = pd.DataFrame([1,2,3,4,5,6,7,8,9])

tau = 10的情況下。
對於熊貓='0.24.2'

df.rolling(window=(3,10), win_type='exponential').mean()

對於熊貓='1.1.3'
 df.rolling(window=3, win_type='exponential').mean(tau=10)

毫不猶豫地添加其他版本依賴項。

從 Stepan 提供的鏈接中找到答案: Tau 必須在 function 調用中傳遞,即

df.rolling(window=(3), win_type='exponential').mean(tau=10)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM