我正在从一个网站读取多个HTML表,并且其中一个表错误地将表中的第一行数据作为DataFrame的标题。
此代码:
list_addition = pd.read_html('https://www.espn.com/college-football/team/stats/_/id/87/season/2020')
list_addition[8].head()
产生下表:
Index Drew White LB
0 Asmar Bilal LB
1 Jeremiah Owusu-Koramoah LB
2 Alohi Gilman S
3 Jalen Elliott S
4 Khalid Kareem DL
我希望能够将数据的第一个标头移到DataFrame中,并重命名该列,而又不会丢失数据。理想的输出见下文:
Index Name
0 Drew White LB
1 Asmar Bilal LB
2 Jeremiah Owusu-Koramoah LB
3 Alohi Gilman S
4 Jalen Elliott S
配置pd.read_html以排除标头不是一种选择,因为我要从同一个网站提取多个表,而所有其他表都正确地提取标头。另外,我不想执行list_addition.rename(columns =“ Name”),因为我不想丢失第一行信息。
我希望最简单的方法是使用shift
或offset将数据向下移动一行,以创建新列“ Name”。然后,您将列标签硬编码分配给row [0]。
这些步骤的每一个在很多地方都有很好的记录,因此,我将把编码留给读者练习。 :-)
使用,header
参数:
list_addition = pd.read_html('https://www.espn.com/college-football/team/stats/_/id/87/season/2020', header=0)
list_addition[8].head()
输出:
Name
0 Drew White LB
1 Asmar Bilal LB
2 Jeremiah Owusu-Koramoah LB
3 Alohi Gilman S
4 Jalen Elliott S