本文介绍了 pandas -累积中位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道是否有任何熊猫的中位数等于cumsum()
或cummax()
等. cummedian()
.
I was wondering if there is any pandas equivalent to cumsum()
or cummax()
etc. for median: e.g. cummedian()
.
例如,如果有的话,这个数据框:
So that if I have, for example this dataframe:
a
1 5
2 7
3 6
4 4
我想要的是这样的:
df['a'].cummedian()
应输出:
5
6
6
5.5
推荐答案
您可以使用expanding.median
-
df.a.expanding().median()
1 5.0
2 6.0
3 6.0
4 5.5
Name: a, dtype: float64
时间
df = pd.DataFrame({'a' : np.arange(1000000)})
%timeit df['a'].apply(cummedian())
1 loop, best of 3: 1.69 s per loop
%timeit df.a.expanding().median()
1 loop, best of 3: 838 ms per loop
优胜者是expanding.median
. Divakar的方法占用大量内存,并且在这种输入大小下会遭受内存崩溃.
The winner is expanding.median
by a huge margin. Divakar's method is memory intensive and suffers memory blowout at this size of input.
这篇关于 pandas -累积中位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!