TypeError:列表索引必须是整数或切片,而不是元组,或html

2024-09-28 05:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一些代码打算阅读网站的html,它可以很好地抓住我需要的东西。但是,无论何时打印结果,我都无法指定要打印的行/列

这是我的密码:

import pandas as pd
import requests

url = 'https://rocketleague.tracker.network/rocket-league/distribution'

header = {
  "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
  "X-Requested-With": "XMLHttpRequest"
}


r = requests.get(url, headers=header)
df = pd.read_html(r.text)

print(df)

但是,如上所述,当我尝试指定行、列时,例如:

打印(df[1,3])

我得到了错误TypeError:列表索引必须是整数或切片,而不是元组


Tags: 代码httpsimporturl密码pandasdf网站
1条回答
网友
1楼 · 发布于 2024-09-28 05:27:18
  • 根据注释read_html()返回对应于HTML中每个表的数据帧列表
  • 对于此网页,有两个列实际上与显示的页面不同。使用concat()合并这些
  • 然后,出于演示目的,在跟踪的层/玩家中提取玩家编码字符串
  • 然后生成一个类似于您在网页上看到的图形
import pandas as pd
import requests

url = 'https://rocketleague.tracker.network/rocket-league/distribution'

header = {
  "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
  "X-Requested-With": "XMLHttpRequest"
}

r = requests.get(url, headers=header)
df = pd.read_html(r.text)
df = pd.concat(df)
df = df.join(df["Tier / Players Tracked"].str.extract(r"(?P<Tier>[A-Z,a-z, ]+)(?P<Players>[0-9,\,]+)"))
df["Players"] = pd.to_numeric(df["Players"].str.replace(",",""))
df.loc[df["Tier"].ne("Unranked ")].plot(kind="bar", x="Tier", y="Players")

输出

enter image description here

相关问题 更多 >

    热门问题