【发布时间】:2022-11-18 13:55:43
【问题描述】:
具有以下数据框。 我如何执行结合 2 列值的滚动 3 窗口分位数 (0.4)?
### Sample Dataframe
np.random.seed(0) # Freeze randomness
a = pd.DataFrame(np.random.randint(1,10,size=(20, 1)), columns=list('A'))
b = pd.DataFrame(np.random.randint(50,90,size=(20, 1)), columns=list('B'))
df = pd.concat([a,b], axis=1)
df
| A | B | quantile_AB (expected ans) | |
|---|---|---|---|
| 0 | 6 | 75 | NaN |
| 1 | 1 | 63 | NaN |
| 2 | 4 | 58 | 6.0 |
| 3 | 4 | 59 | 4.0 |
(6,1,4,75,63,58) 的第 40 个百分位数应该给我 6.0。
下面的公式分别给出了 2 列的滚动分位数。
df.rolling(3)[['A','B']].quantile(0.4)
【问题讨论】:
-
A、B是什么关系? -
没有关系。仅以数字为例
-
交错 (zip) 2 列并在 6 的窗口上采用滚动分位数,最后采用每个第二个值形式? (或者我认为滚动让你也可以直接设置步长 2)
-
你有代码示例吗?