簡體   English   中英

Pandas 滾動返回結果的計數,在滾動 window 內

[英]Pandas count of rolling return outcomes, within a rolling window

Python 初學者在這里。 我正在做一些關於概率的工作並查看股票市場指數,我需要能夠計算指數在 3 年內下跌 20% 的次數。 但在 12 年期間。

例如 - 我的數據始於 2008 年。如果我選擇一個 3 年滾動的 window,我想知道市場從該起始水平跌至低 20% 的水平有多少次。 然后我想將我的開始日期向前滾動一天並再次計數。

我已經完成了計算指數在 3 年期結束時(超過 12 年的數據集)下降 20%(或更多)的次數的項目,但我無法理解如何添加這個額外的“計數”級別. 我需要確定開始日期並計算回報,如果回報小於 -20%,則添加計數。 然后重復所有可能的開始日期。

indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=N+1)
df['Count_B20'] = (df['Last_Price'].rolling(indexer, min_periods=1)
                                       .apply(lambda window: (window <
                                                              
df['B20'].iloc[window.index.min()]).sum()))

df['B20'] 是我的障礙水平列(有問題的 20%) df['Last Price'] 是該范圍內的最后價格

正是我需要的!

暫無
暫無

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

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