我需要在pandas TimeSeries/ DataFrameobject中存储Python十进制类型值.当在TimeSeries/DataFrame上使用"groupby"和"mean"时,Pandas会给我一个错误.以下基于浮点数的代码运行良好:
[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
Run Code Online (Sandbox Code Playgroud)
但是如果使用十进制值而不是浮点数做同样的事情我会得到一个错误:
[5]: rnd = [Decimal(x) for x in rnd]
[6]: ts = TimeSeries(rnd, index=rng, dtype=Decimal)
[7]: ts.groupby([by('year'), by('month'), by('day')]).mean() #Crash!
Traceback (most recent call last):
File "C:\Users\TM\Documents\Python\tm.py", line 100, in <module> …Run Code Online (Sandbox Code Playgroud)