本文介绍了 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 -累积中位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-26 10:31