Bin*_*ven 2 python math accumulate pandas
我想知道是否有相当于有熊猫cumsum()或者cummax()等为中位数:如cummedian()。
因此,如果我有,例如这个数据框:
a
1 5
2 7
3 6
4 4
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的:
df['a'].cummedian()
Run Code Online (Sandbox Code Playgroud)
应该输出:
5
6
6
5.5
Run Code Online (Sandbox Code Playgroud)
你可以使用expanding.median-
df.a.expanding().median()
1 5.0
2 6.0
3 6.0
4 5.5
Name: a, dtype: float64
Run Code Online (Sandbox Code Playgroud)
时间安排
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
Run Code Online (Sandbox Code Playgroud)
赢家是expanding.median一个巨大的优势。Divakar 的方法是内存密集型的,并且在这种输入大小下会出现内存爆裂。
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |