我试图从Excel文件中使用以下命令获得列
i = pd.read_excel('filename.xlsx', sheet_name='sheet1')['column1']
过去的代码工作得很好,但是今天它突然停止工作并出现错误。
我尝试使用不同版本的Pandas和NumPy,但这不起作用,并给出以下错误:
AttributeError:模块'numpy'没有属性'float'。
np.float
是内置float
的已弃用别名。为了避免在现有代码中出现这种错误,可以单独使用float
。这样做不会改变任何行为,而且是安全的。如果您特别需要numpy标量类型,请在这里使用np.float64
。这些别名最初在NumPy 1.20中已弃用;欲了解更多细节和指导,请参阅原始发布说明:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
有没有人知道如何解决这个问题,而不是痛苦地尝试不同版本的Pandas和/或numpy?在过去的代码运行良好,但现在它不工作了。
与其像其他答案中建议的那样降级pandas或numpy,不如尝试将软件包openpyxl
更新到版本>= 3.0.6。这个版本修复了这个错误。
openpyxl
是负责将excel表格读取为pandas的包。
我只是卸载了anaconda然后重新安装。它解决了这个问题。花了很多时间试图调试,但卸载和重新安装蟒蛇为我解决了这个问题。这不是解决问题的理想方法,但需要继续前进…
谢谢你的回复,朋友们。
参考此链接
https://numpy.org/doc/1.20/reference/arrays.scalars.html其它的别名
尝试使用np.float_
,否则参考文件上有很多其他选项,您可以从中选择一个满足您需要的。
您可以通过直接提到用于字典中列的dtype
来使用它:
pd.read_excel(the_file, dtype = {"col1":np.float_})