为何Pandas中的read_hdf函数无法正常运行?
解决pandas循环引用导致的AttributeError
问题重现
运行以下代码:
import pandas as pd nsfg = pd.read_hdf('nsfg.hdf5','nsfg') type(nsfg) nsfg.head()
出现如下错误:
File "c:\Users\pro\OneDrive\سطح المكتب\main folder\data science\python for data analysis\pandas.py", line 1, in <module> import pandas as pd File "c:\Users\pro\OneDrive\سطح المكتب\main folder\data science\python for data analysis\pandas.py", line 2, in <module> nsfg = pd.read_hdf('nsfg.hdf5','nsfg') AttributeError: partially initialized module 'pandas' has no attribute 'read_hdf' (most likely due to a circular import)
原因分析
你的脚本文件名是pandas.py,和第三方库pandas重名了。Python导入模块时会优先加载当前工作目录下的文件,导致你写的脚本被当成pandas模块导入,形成循环引用:脚本第一行要import pandas,结果导入的是自身,而自身还没完成初始化,自然找不到read_hdf属性。
解决方法
- 修改脚本文件名,比如改成
nsfg_data_analysis.py,绝对不要和任何第三方库名称重复 - 如果当前目录下有
__pycache__文件夹,直接删除它,避免缓存的旧模块干扰 - 重新运行修改后的脚本
内容的提问来源于stack exchange,提问作者sobhan allah101
相关产品推荐
相关产品推荐

