我为python安装了Pandas,我似乎无法获得正确的数据框架引用



下面的代码基于一年创建了三个数据帧。每个数据帧本质上都是相同的,除了每年会有不同的玩家表现统计。但是,数据帧顶部的标题每20行左右重复一次。我正在想办法摆脱它。所以我想如果我搜索"Player"Player"在列中重复,这样我就可以找到它出现的行并删除它出现的行。在我的代码结束时,我运行了一个打印函数,看看标题行在数据中发生了多少次,结果是20次。我只是想不出如何删除这些行。

import pandas as pd
year = ["2018", "2019", "2020"]
str = "https://www.pro-football-reference.com/years/{}/fantasy.htm"
url = str.format(year)
urlList = []
for season in year:
url = str.format(season)
urlList.append(url)
df2018 = pd.read_html(urlList[0], header=1)
df2019 = pd.read_html(urlList[1], header=1)
df2020 = pd.read_html(urlList[2], header=1)
print(df2020)

print(sum(df2020[0]["Player"] == "Player"))

注:我认为有一种方法可以通过使用:dataframe的形式来引用数据帧变量。变量?

应该可以:

import pandas as pd
year = ["2018", "2019", "2020"]
str = "https://www.pro-football-reference.com/years/{}/fantasy.htm"
url = str.format(year)
urlList = []
for season in year:
url = str.format(season)
urlList.append(url)
df2018 = pd.read_html(urlList[0], header=1)
df2019 = pd.read_html(urlList[1], header=1)
df2020 = pd.read_html(urlList[2], header=1)
df2020 = df2020[0]
df2020 = df2020[df2020['Rk'] != 'Rk']
print(df2020.head(50))

它为值"Rk"过滤Rk列,并在创建新数据框时排除它。我只运行了2020年的代码,但您可以为其他数据帧重复它。

值得注意的是,pd.read_html()生成一个数据框架列表,而不是一个数据框架,因为一个HTML网站或文件可以包含多个数据框架。这就是为什么我包含了这行代码:
df2020 = df2020[0]。它从列表中选择第一个数据帧。

如果您需要重置索引,请在末尾添加以下代码:

df2020 = df2020.reset_index(drop=True)

最新更新