值错误:缓冲区数据类型不匹配,预期 'float64_t' 但得到 'float
这里有一个名为 'modtso' 的数据框:
In [4]: modtso
Out[4]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 74006 entries, 2002-07-27 15:00:00 to 2010-12-31 22:58:08
Data columns:
0 74006 non-null values
dtypes: float32(1)
In [5]: modtso[1:10]
Out[5]:
0
2002-07-27 16:01:53 9.336845
2002-07-27 16:58:08 9.337487
2002-07-27 18:00:00 9.343308
2002-07-27 19:01:53 9.364368
2002-07-27 19:58:08 9.389445
...
现在我想把它重新采样,像下面这样:
a=modtso.resample('D',how='std')
但是会出现一个错误:
ValueError: Buffer dtype mismatch, expected 'float64_t' but got 'float'
这是什么问题呢?我该怎么解决?谢谢!
2 个回答
2
这样做可以解决这个问题:
from numpy import float64
remod=float64(modtso[0]).resample('D',how=['std'])
13
在0.11开发版本中,这个功能是完全支持的。
在0.10版本中,我觉得它也能用,但你的float32类型在几乎所有操作中都会变成float64类型。
另外,想要明确地转换数据类型,可以参考一下:
df.astype('float64')
这里有一些例子:
http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v0-11-0-march-2013