AttributeError 模块 ‘pandas’ 没有属性 ‘DataFrame’

目录

AttributeError module ‘pandas’ has no attribute ‘DataFrame’

  1. AttributeError 模块 ‘pandas’ 没有属性 ‘DataFrame’
  2. AttributeError 模块 ‘pandas’ 没有属性 ‘read_csv’
  3. AttributeError 模块 ‘pandas’ 没有属性 ‘Series’

AttributeError 模块 ‘pandas’ 没有属性 ‘DataFrame’

Python“AttributeError module ‘pandas’ has no attribute ‘DataFrame’”发生在我们有一个名为pandas.py或拼写错误的本地文件时DataFrame

要解决该错误,请确保重命名所有名为pandas.py.

attributeerror 模块 pandas 没有属性数据框

下面是一个示例,说明错误是如何在名为pandas.py.

熊猫.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在同一目录中有一个文件时打印模块属性的样子。

熊猫.py
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到导入的pandas模块没有DataFrame属性,这表明我们正在pandas用本地pandas.py文件隐藏官方模块。

如果您尝试pandas在一个名为 的文件中导入模块pandas.py,您会收到一些不同的错误消息,但意思是一样的。

熊猫.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], } )

重命名文件可以解决错误。

  1. AttributeError 模块 ‘pandas’ 没有属性 ‘read_csv’
  2. AttributeError 模块 ‘pandas’ 没有属性 ‘Series’

AttributeError 模块 ‘pandas’ 没有属性 ‘read_csv’

Python“AttributeError module ‘pandas’ has no attribute ‘read_csv’”发生在我们有一个名为pandas.pyor的本地文件csv.py并尝试从模块导入时pandas

要解决该错误,请确保重命名所有名为pandas.py.

attributeerror 模块 pandas 没有属性读取 csv

下面是一个示例,说明错误是如何在名为pandas.py.

熊猫.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)

成功读取csv数据

上面的代码示例假定您有一个employees.csv如下所示的文件。

雇员.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在同一目录中有一个文件时打印模块属性的样子。

熊猫.py
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到导入的pandas模块没有read_csv属性,这表明我们正在pandas用本地pandas.py文件隐藏官方模块。

如果您尝试pandas在一个名为 的文件中导入模块pandas.py,您会收到一些不同的错误消息,但意思是一样的。

熊猫.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.

attributeerror 模块 pandas 没有属性系列

下面是一个示例,说明错误是如何在名为pandas.py.

熊猫.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在同一目录中有一个文件时打印模块属性的样子。

熊猫.py
import pandas as pd # ['__builtins__', '__cached__', '__doc__', '__file__', # '__loader__', '__name__', '__package__', '__spec__'] print(dir(pd))

如果将模块对象传递给
dir()函数,它会返回模块属性名称的列表。

如果您尝试访问不在此列表中的任何属性,您将得到“AttributeError:模块没有属性”。

我们可以看到导入的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)

重命名文件可以解决错误。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: