AttributeError:pandas模块无DataFrame属性 求助排查问题原因
解决AttributeError: module 'pandas' has no attribute 'DataFrame'问题
嘿,我来帮你分析下这个问题——这不是pandas安装错误哦,是个典型的文件命名冲突导致的问题!
错误原因分析
看你的Traceback里有个关键线索:
File "C:\Users\Shaswat\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py", line 5, in
import json
File "E:/testing 123 check\json.py", line 12, in
print(pd.DataFrame(userInput))
你的脚本文件名是json.py,而pandas内部需要导入Python标准库的json模块。当Python执行import json时,会优先加载当前工作目录下的同名文件(也就是你的脚本),而不是系统自带的标准库json模块。这就造成了循环导入:你的脚本还在加载pandas,pandas却又反过来加载你的脚本,导致pandas的初始化过程被打断,还没来得及生成DataFrame这个属性,所以就抛出了这个错误。
解决方案
- 立刻修改你的脚本文件名,不要和Python标准库的模块名重名,比如改成
test_pandas_dataframe.py这类名字。 - 如果当前目录下生成了
json.pyc文件(Python编译后的字节码文件),也一并删除,避免残留影响。 - 重新运行修改后的脚本,pandas就能正常导入并使用
DataFrame了。
额外小提示
你的代码创建DataFrame的方式,默认会把字典的每个键作为列,值作为列的内容,输出会是竖排的格式。如果希望输出是一行数据的格式,可以把字典放进列表里:
import pandas as pd userInput ={ 'Principal':1000, 'terms':15, 'age':33, 'Gender':1, 'weekend':1, 'Bechalor':0, 'High School or Below':1, 'college':0 } print(pd.DataFrame([userInput]))
内容的提问来源于stack exchange,提问作者Kumar Shaswat
相关产品推荐
相关产品推荐

