Python / Pandas-如何在DataFrame中重命名列标题,而又不会丢失列标题中的现有数据?

问题描述 投票:1回答:2

我正在从一个网站读取多个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”),因为我不想丢失第一行信息。

python pandas
2个回答
1
投票

我希望最简单的方法是使用shift或offset将数据向下移动一行,以创建新列“ Name”。然后,您将列标签硬编码分配给row [0]。

这些步骤的每一个在很多地方都有很好的记录,因此,我将把编码留给读者练习。 :-)


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
© www.soinside.com 2019 - 2024. All rights reserved.