df.rename(columns={'nan': 'RK', 'PP': 'PLAYER','SH':'TEAM','nan':'GP','nan':'G','nan':'A','nan':'PTS','nan':'+/-','nan':'PIM','nan':'PTS/G','nan':'SOG','nan':'PCT','nan':'GWG','nan':'PPG','nan':'PPA','nan':'SHG','nan':'SHA'}, inplace=True)
这是我根据http://www.espn.com/nhl/statistics/player/_/stat/points/sort/points/year/2015/seasontype/2
重命名列的代码我希望这两个表具有相同的列名。我在spyder IDE中使用python2 当我运行上面的代码时,它给了我这个错误:
AttributeError: 'list' object has no attribute 'rename'
答案 0 :(得分:1)
最初的问题是很久以前发布的,但是我遇到了同样的问题,并在这里找到了解决方法:pd.read_html() imports a list rather than a dataframe
当您执行pd.read_html
时,由于网站可能有多个表,因此您正在创建数据帧列表。在尝试重命名之前,再添加一行代码:
dfs = pd.read_html(url, header=0)
,然后df = dfs[0]
;您将拥有df
变量作为数据框,这将允许您运行要在原始问题中尝试运行的df.rename
命令。
答案 1 :(得分:-1)
这应该能够修复,df是您的数据集 df.columns = ['a','b','c','d','e','f']