如何在具有十进制类型值的pandas TimeSeries上使用mean方法?

2024-10-01 17:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将Python decimal类型值存储在pandasTimeSeries/DataFrame对象中。Pandas在TimeSeries/DataFrame上使用“groupby”和“mean”时出错。以下基于浮动的代码运行良好:

[0]: by = lambda x: lambda y: getattr(y, x)

[1]: rng = date_range('1/1/2000', periods=40, freq='4h')

[2]: rnd = np.random.randn(len(rng))

[3]: ts = TimeSeries(rnd, index=rng)

[4]: ts.groupby([by('year'), by('month'), by('day')]).mean()
2000  1  1    0.512422
         2    0.447235
         3    0.290151
         4   -0.227240
         5    0.078815
         6    0.396150
         7   -0.507316

但是如果使用十进制值而不是浮点值来执行同样的操作,我会得到一个错误:

^{pr2}$

错误消息是“GroupByError('No numeric types to aggregate')”。是否有机会在包含十进制值的时间序列或数据帧上使用sum、mean和quantileon等标准聚合?在

为什么它不起作用?如果不可能,有没有机会有一个同样快速的替代方案?在

编辑:我刚刚意识到大多数其他函数(最小值、最大值、中值等)都很好,但不是我迫切需要的平均值函数。在


Tags: lambda函数类型dataframeby错误mean机会

热门问题