我有一个数据框,其中包含以下列:
Date
,ID
和Value
。 我需要对Value
执行平均值,中位数和方差,并使用.agg
进行操作,像这样:df = dataset\
.groupby(['ID', pd.Grouper(key='Date', freq='60T')])['Value']\
.agg(['mean', 'median', 'var'])\
.reset_index()
它成功计算了平均值,但当需要计算中位数时,它只是重复平均值,不会存储或创建变量列。以下是结果:
ID Date mean median var
0 13834 2017-02-09 12:00:00 1.474920 1.474920 NaN
1 13834 2017-02-09 16:00:00 4.424796 4.424796 NaN
2 13834 2017-02-09 20:00:00 2.241871 2.241871 NaN
3 13834 2017-02-10 00:00:00 2.654867 2.654867 NaN
4 13834 2017-02-10 04:00:00 2.654867 2.654867 NaN
5 13834 2017-02-10 08:00:00 0.511062 0.511062 NaN
在最后一列应该是方差列,但我得到了空白(或NaN
,如果在数据框中显示)。我该如何解决这个问题?
df.groupby(df.index).agg(["mean", "median", "var"]).reset_index()
- 显然它使用了方差估计器 1/(N-1),如果N=1,则返回NaN。 https://en.wikipedia.org/wiki/Variance - Grzegorz Skibinski