我正在尝试读取hdf格式的文件。之前它工作正常,但是突然之间我收到以下错误:
pandas._libs.writers.string_array_replace_from_nan_rep()中的pandas_libs \ writers.pyx
ValueError:缓冲区dtype不匹配,预期为“ Python对象”,但为“双精度”
我的代码如下:
nm -C al_test.o
U __cxa_allocate_exception
U __cxa_atexit
U __cxa_begin_catch
U __cxa_end_catch
U __cxa_free_exception
U __cxa_throw
U __dso_handle
00000000000000e0 t _GLOBAL__sub_I__Z9test_wavev
U __gxx_personality_v0
0000000000000000 r .LC1
0000000000000000 T main
U __stack_chk_fail
U _Unwind_Resume
0000000000000000 T test_wave()
U operator delete(void*)
U min::wave::wave(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
U min::wave::is_mono() const
U std::runtime_error::runtime_error(char const*)
U std::runtime_error::~runtime_error()
U std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)
U std::ios_base::Init::Init()
U std::ios_base::Init::~Init()
U std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)
U std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
U std::cout
U std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
0000000000000000 b std::__ioinit
U typeinfo for std::runtime_error
U typeinfo for std::exception
我正在使用Jupyter笔记本和python 3.6。我只是不明白为什么我以前可以读取文件而没有任何问题,现在弹出此错误。自上次运行以来,我所做的不同操作是创建一个虚拟环境来运行另一个代码,由于我现在遇到此错误,我重新安装了anaconda,但在读取此文件时仍然遇到此错误:(
答案 0 :(得分:2)
您可能已经安装了最新的熊猫版本。我对pandas-0.23.4遇到了同样的问题,将其降级为0.22.0对我来说已经解决了。
答案 1 :(得分:2)
将熊猫更新到0.24版
这是熊猫0.23版本中的问题。但它在最新版本的熊猫0.24.1中得到了解决。
参考:https://github.com/pandas-dev/pandas/issues/24404
您可以升级
pip3 install pandas -upgrade
或
conda install pandas