这几天,看了一些关于机器学习的资料,准备测试一下,重新安装发Anaconda3,pandas和numpy也跟着升到了最新版本,pandas的版本1.4.2,numpy的版本是1.21.5,但以前正常使用的pd.DataFrame()报错了,错误信息是:
jjcode = pd.DataFrame(datas)
File "x:\Anaconda3\lib\site-packages\pandas\core\frame.py", line 708, in __init__
data = np.asarray(data)
ValueError: invalid __array_struct__
查看"...frame.py", line 708,代码如下:
# For data is list-like, or Iterable (will consume into list) elif is_list_like(data): if not isinstance(data, (abc.Sequence, ExtensionArray)): if hasattr(data, "__array__"): # GH#44616 big perf improvement for e.g. pytorch tensor data = np.asarray(data) else: data = list(data) 上面代码的意思是如果data参数is_list_like的话,就用data = np.asarray(data)再转换一下。而且说是“big perf improvement for e.g. pytorch tensor”,我查看了我转入的datas,就是一个字典的列表,有些程度就没有问题,有些就有问题,在未重装Anaconda之前,都没有问题。真不知道是咋回事。