【发布时间】:2020-01-15 15:42:43
【问题描述】:
我有一张这样的桌子
+------+------------+-------+
| Idx | date | value |
+------+------------+-------+
| A | 20/11/2016 | 10 |
| A | 21/11/2016 | 8 |
| A | 22/11/2016 | 12 |
| B | 20/11/2016 | 16 |
| B | 21/11/2016 | 18 |
| B | 22/11/2016 | 11 |
+------+------------+-------+
我想创建一个列,该列基于列 'value' 创建一个新列 'rolling_quantile_value',该列根据过去计算每个分位数行和每个可能的 Idx。
对于上面的示例,如果选择的分位数是中位数,则输出应如下所示:
+------+------------+-------+-----------------------+
| Idx | date | value | rolling_median_value |
+------+------------+-------+-----------------------+
| A | 20/11/2016 | 10 | NaN |
| A | 21/11/2016 | 8 | 10 |
| A | 22/11/2016 | 12 | 9 |
| A | 23/11/2016 | 14 | 10 |
| B | 20/11/2016 | 16 | NaN |
| B | 21/11/2016 | 18 | 16 |
| B | 22/11/2016 | 11 | 17 |
+------+------------+-------+-----------------------+
我以天真的方式完成了它,我只是放置了一个函数,该函数根据先例的值行逐行创建并标记从一个 Id 到另一个 Id 的跳转,但我确信这不是最有效的方法这样做,也不是最优雅的。
期待您的建议!
【问题讨论】:
标签: python pandas dataframe pandas-groupby data-processing