【问题标题】:ValueError: Buffer dtype mismatch, expected 'float64_t' but got 'float'ValueError:缓冲区 dtype 不匹配,预期为“float64_t”但得到“float”
【发布时间】:2013-02-05 17:43:30
【问题描述】:

有一个 DataFrame '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'

有什么问题?我该如何解决? 谢谢

【问题讨论】:

  • 您使用的是哪个版本的熊猫?如果 pre-0.90 可能与 this issue 有关。它在 0.10.1 上对我来说没问题。

标签: python pandas


【解决方案1】:

这样做可以解决这个问题:

from numpy import float64
remod=float64(modtso[0]).resample('D',how=['std'])

【讨论】:

    【解决方案2】:

    0.11-dev 完全支持此功能 在 0.10 中我认为它会起作用,但是对于几乎任何操作,您的 float32 都会变为 float64

    和 FYI 显式转换类型

    df.astype('float64')
    

    在此处查看示例 http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v0-11-0-march-2013

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2017-10-14
      • 2014-11-07
      • 2020-07-31
      • 2019-09-10
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多