[英]calculate percentile using rolling window pandas
我創建一個熊貓數據框為
df = pd.DataFrame(data=[[1],[2],[3],[1],[2],[3],[1],[2],[3]])
df
Out[19]:
0
0 1
1 2
2 3
3 1
4 2
5 3
6 1
7 2
8 3
我在長度= 3的窗口上計算了75%的百分位數
df.rolling(window=3,center=False).quantile(0.75)
Out[20]:
0
0 NaN
1 NaN
2 2.0
3 2.0
4 2.0
5 2.0
6 2.0
7 2.0
8 2.0
然后只是檢查一下我分別在第一個窗口上計算了75%
df.iloc[0:3].quantile(0.75)
Out[22]:
0 2.5
Name: 0.75, dtype: float64
為什么我得到不同的價值?
由開發人員給出的原因-
看起來這里的區別在於,
quantile
和percentile
取最近點的加權平均值,而rolling_quantile僅使用最近點的加權平均值(不求平均值)。
計算分位數時, Rolling.quantile
沒有內插。
該錯誤已從0.21開始修復。
對於舊版本,此修復程序使用了rolling_apply
。
df.rolling(window=3, center=False).apply(lambda x: pd.Series(x).quantile(0.75))
0
0 NaN
1 NaN
2 2.5
3 2.5
4 2.5
5 2.5
6 2.5
7 2.5
8 2.5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.