目录
AttributeError module ‘pandas’ has no attribute ‘DataFrame’
- AttributeError 模块 ‘pandas’ 没有属性 ‘DataFrame’
- AttributeError 模块 ‘pandas’ 没有属性 ‘read_csv’
- AttributeError 模块 ‘pandas’ 没有属性 ‘Series’
AttributeError 模块 ‘pandas’ 没有属性 ‘DataFrame’
Python“AttributeError module ‘pandas’ has no attribute ‘DataFrame’”发生在我们有一个名为pandas.py
或拼写错误的本地文件时DataFrame
。
要解决该错误,请确保重命名所有名为pandas.py
.
下面是一个示例,说明错误是如何在名为pandas.py
.
import pandas as pd # ⛔️ AttributeError: module 'pandas' has no attribute 'DataFrame' df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) print(df)
最可能的错误原因是有一个名为的本地文件pandas.py
隐藏了官方的pandas 模块。
DataFrame
因为类名区分大小写。确保不要将文件命名为 pandas.py
确保将本地文件重命名为不同于pandas.py
解决错误的名称。
import pandas as pd # ✅ works df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) print(df)
您的文件可以被命名main.py
或任何其他不属于另一个模块的名称。
确保你的导入语句是正确的
另一件需要注意的事情是导入语句不正确。
在示例中,我们导入pandas
模块并将其别名为pd
,因此我们将访问该类DataFrame
作为pd.DataFrame
.
Python 解释器
首先
在内置模块中查找导入的模块,然后在当前目录中查找,然后在 PYTHON PATH 中查找,然后在依赖于安装的默认目录中查找。
您可以访问__file__
导入模块的属性以查看它是否被本地文件隐藏。
import pandas as pd # ⛔️ result if shadowed by local file # /home/borislav/Desktop/bobbyhadz_python/pandas.py # ✅ result if pulling in correct module # /home/borislav/Desktop/bobbyhadz_python/venv/lib/python3.10/site-packages/pandas/__init__.py print(pd.__file__)
开始调试的一个好方法是print(dir(your_module))
查看导入的模块具有哪些属性。
检查导入的对象有哪些属性
pandas
这是当我pandas.py
在同一目录中有一个文件时打印模块属性的样子。
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))
如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。
我们可以看到导入的pandas
模块没有DataFrame
属性,这表明我们正在pandas
用本地pandas.py
文件隐藏官方模块。
如果您尝试pandas
在一个名为 的文件中导入模块pandas.py
,您会收到一些不同的错误消息,但意思是一样的。
import pandas as pd # ⛔️ AttributeError: partially initialized module 'pandas' has no attribute 'DataFrame' (most likely due to a circular import) df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } )
重命名文件可以解决错误。
AttributeError 模块 ‘pandas’ 没有属性 ‘read_csv’
Python“AttributeError module ‘pandas’ has no attribute ‘read_csv’”发生在我们有一个名为pandas.py
or的本地文件csv.py
并尝试从模块导入时pandas
。
要解决该错误,请确保重命名所有名为pandas.py
.
下面是一个示例,说明错误是如何在名为pandas.py
.
import pandas as pd # ⛔️ AttributeError: module 'pandas' has no attribute 'read_csv' df = pd.read_csv('employees.csv') print(df)
pandas.py
有一个名为或的本地文件csv.py
最可能的错误原因是有一个名为的本地文件pandas.py
隐藏了官方pandas
模块。
该错误也是由本地文件名为csv.py
.
确保将本地文件重命名为不同于pandas.py
解决错误的名称。
import pandas as pd df = pd.read_csv('employees.csv', sep=',', encoding='utf-8') # first_name last_name # 0 Alice Smith # 1 Bobby Hadz # 2 Carl Smith print(df)
上面的代码示例假定您有一个employees.csv
如下所示的文件。
first_name,last_name Alice,Smith Bobby,Hadz Carl,Smith
该employees.csv
文件和main.py
文件应位于同一目录中。
导入语句不正确
另一件需要注意的事情是导入语句不正确。
Python 解释器
首先
在内置模块中查找导入的模块,然后在当前目录中查找,然后在 PYTHON PATH 中查找,然后在依赖于安装的默认目录中查找。
您可以访问__file__
导入模块的属性以查看它是否被本地文件隐藏。
import pandas as pd # ⛔️ result if shadowed by local file # /home/borislav/Desktop/bobbyhadz_python/pandas.py # ✅ result if pulling in the correct module # /home/borislav/Desktop/bobbyhadz_python/venv/lib/python3.10/site-packages/pandas/__init__.py print(pd.__file__)
开始调试的一个好方法是print(dir(your_module))
查看导入的模块具有哪些属性。
pandas
这是当我pandas.py
在同一目录中有一个文件时打印模块属性的样子。
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))
如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。
我们可以看到导入的pandas
模块没有read_csv
属性,这表明我们正在pandas
用本地pandas.py
文件隐藏官方模块。
如果您尝试pandas
在一个名为 的文件中导入模块pandas.py
,您会收到一些不同的错误消息,但意思是一样的。
import pandas as pd # ⛔️ AttributeError: partially initialized module 'pandas' has no attribute 'read_csv' (most likely due to a circular import) df = pd.read_csv('employees.csv') print(df)
重命名文件可以解决错误。
AttributeError 模块 ‘pandas’ 没有属性 ‘Series’
pandas.py
当我们有一个名为或拼写错误Series
(区分大小写)的本地文件时,会出现 Python“AttributeError module ‘pandas’ has no attribute ‘Series’” 。
要解决该错误,请确保重命名所有名为pandas.py
.
下面是一个示例,说明错误是如何在名为pandas.py
.
import pandas as pd d = {'a': 1, 'b': 2, 'c': 3} # ⛔️ AttributeError: module 'pandas' has no attribute 'Series' ser = pd.Series(data=d, index=['a', 'b', 'c']) print(ser)
确保你没有命名你的文件pandas.py
最可能的错误原因是有一个名为的本地文件pandas.py
隐藏了官方pandas
模块。
Series
因为类名区分大小写。确保将本地文件重命名为不同于pandas.py
解决错误的名称。
import pandas as pd d = {'a': 1, 'b': 2, 'c': 3} # ✅ works ser = pd.Series(data=d, index=['a', 'b', 'c']) print(ser)
本地文件的名称不应与模块名称冲突。
否则,本地模块会隐藏导致问题的远程模块。
确保你的导入语句是正确的
另一件需要注意的事情是导入语句不正确。
在示例中,我们导入pandas
模块并将其别名为pd
,因此我们将访问该类Series
作为pd.Series
.
Python 解释器
首先
在内置模块中查找导入的模块,然后在当前目录中查找,然后在 PYTHON PATH 中查找,然后在依赖于安装的默认目录中查找。
您可以访问__file__
导入模块的属性以查看它是否被本地文件隐藏。
import pandas as pd # ⛔️ result if shadowed by local file # /home/borislav/Desktop/bobbyhadz_python/pandas.py # ✅ result if pulling in correct module # /home/borislav/Desktop/bobbyhadz_python/venv/lib/python3.10/site-packages/pandas/__init__.py print(pd.__file__)
开始调试的一个好方法是print(dir(your_module))
查看导入的模块具有哪些属性。
pandas
这是当我pandas.py
在同一目录中有一个文件时打印模块属性的样子。
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))
如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。
我们可以看到导入的pandas
模块没有Series
属性,这表明我们正在pandas
用本地pandas.py
文件隐藏官方模块。
如果您尝试pandas
在一个名为 的文件中导入模块pandas.py
,您会收到一些不同的错误消息,但意思是一样的。
import pandas as pd d = {'a': 1, 'b': 2, 'c': 3} # ⛔️ AttributeError: partially initialized module 'pandas' has no attribute 'Series' (most likely due to a circular import) ser = pd.Series(data=d, index=['a', 'b', 'c']) print(ser)
重命名文件可以解决错误。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: