[英]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()
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.