如果我有一个长度为T的熊猫系列[a1,a2,a3,a4,...],则每个值对应一天。对于每一天,我想计算历史中位数。例如,第一天计算[a1]的中位数;第二天计算[a1,a2]的中位数;第n天计算[a1,a2,...,an]的中位数。最后我想得到一个长度= T的系列。我们有一种有效的方法在熊猫中做到这一点吗?谢谢!
答案 0 :(得分:0)
对于系列,ser
:
ser = pd.Series(np.random.randint(0, 100, 10))
如果您的pandas版本为0.18.0或更高版本,请使用:
ser.expanding().median()
Out:
0 0.0
1 25.0
2 50.0
3 36.5
4 33.0
5 36.0
6 33.0
7 36.0
8 33.0
9 36.0
dtype: float64
以下内容适用于早期版本并已弃用:
pd.expanding_median(ser)
C:\Anaconda3\envs\p3\lib\site-packages\spyder\utils\ipython\start_kernel.py:1: FutureWarning: pd.expanding_median is deprecated for Series and will be removed in a future version, replace with
Series.expanding(min_periods=1).median()
# -*- coding: utf-8 -*-
Out:
0 0.0
1 25.0
2 50.0
3 36.5
4 33.0
5 36.0
6 33.0
7 36.0
8 33.0
9 36.0
dtype: float64