在使用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:操作数不能与形状一起广播