如何修复模块'pandas'没有属性'dataframe'的错误

3,147 阅读2分钟

在使用pandas时,你可能遇到的一个错误是:

AttributeError: module 'pandas' has no attribute 'dataframe'

这个错误的发生通常有三个原因之一:

1、你写了pd.dataframe而不是pd.DataFrame

2、其他一些变量被命名为'pd'或'pandas'。

3、文件名是pd.py或pandas.py

下面的例子展示了如何在上述每种情况下解决这个错误:

原因 1: 使用 pd.dataframe

假设我们试图用下面的语法来创建一个pandas DataFrame:

import pandas as pd

#attempt to create DataFrame
df = pd.dataframe({'points': [25, 12, 15, 14],
                   'assists': [5, 7, 13, 12]})

AttributeError: module 'pandas' has no attribute 'dataframe'

我们收到了一个错误,因为我们把dataframe这个词写成了小写。

要创建一个pandas DataFrame,我们必须将 "DataFrame "一词写成骆驼大写字母:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14],
                   'assists': [5, 7, 13, 12]})

#view DataFrame
df

	points	assists
0	25	5
1	12	7
2	15	13
3	14	12

请注意,我们能够成功地创建DataFrame,没有任何错误。

原因2:其他一些变量被命名为'pd'或'pandas'

如果我们的脚本中的一些其他变量被命名为'pd'或'pandas',我们也可能收到这个错误:

import pandas as pd

#create a list named 'pd'
pd = [1, 2, 3, 4]

#attempt to create DataFrame
df = pd.dataframe({'points': [25, 12, 15, 14],
                   'assists': [5, 7, 13, 12]})

AttributeError: module 'pandas' has no attribute 'dataframe'

要解决这个错误,我们只需要将目前名为'pd'的变量改名为其他的东西:

import pandas as pd

#create a list named 'data'
data = [1, 2, 3, 4]

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14],
                   'assists': [5, 7, 13, 12]})

#view DataFrame
df

	points	assists
0	25	5
1	12	7
2	15	13
3	14	12

注意,我们没有收到错误,因为我们不再有一个名为py或pandas的变量。

原因3.文件名是pd.py或pandas.py

另一个可能收到错误的原因是你的脚本的文件名是pd.py或者pandas.py

要解决这个错误,你只需要将你的文件重命名为其他的名字,比如my_script.py或者my_data.py或者字面上的其他名字。

其他资源

下面的教程解释了如何修复Python中的其他常见错误:

如何修复Pandas中的KeyError
如何修复。ValueError: 无法将浮点数NaN转换为整数
如何修复。ValueError:操作数不能与形状一起广播