【发布时间】:2017-12-27 10:46:12
【问题描述】:
我想知道是否有任何熊猫相当于 cumsum() 或 cummax() 等中位数:例如cummedian().
如果我有,例如这个数据框:
a
1 5
2 7
3 6
4 4
我想要的是这样的:
df['a'].cummedian()
应该输出:
5
6
6
5.5
【问题讨论】:
-
如果您正在寻找一个快速的解决方案,我打赌 divakar 会是它。
-
@cᴏʟᴅsᴘᴇᴇᴅ 不,我的看起来更慢!
np.nanmedian没有多大帮助。 -
@OP,请在一个包含 100000 个元素的大型数据集上测试我们所有的解决方案。最适合小数据的解决方案可能并不总是可扩展的。
-
@Binayamin Even,请看我的回答。我为大数据添加了计时,
expanding.median显然是赢家。 -
如果您必须对多列执行扩展中位数,使用
expanding更容易泛化。另一方面,缺乏任何矢量化优势的纯 python 函数将线性扩展,导致更大的减速。
标签: python pandas math accumulate