【发布时间】:2021-12-22 08:59:22
【问题描述】:
我从https://liiga.fi/tilastot/joukkueet 抓取的统计数据取得了一些进展。
编辑。现在我找到了更好的方法。例如 -> https://liiga.fi/api/v1/teams/stats/2017/runkosarja/
我如何从那里抓取统计数据,如胜利、进球等并创建统计数据表?
【问题讨论】:
标签: python json pandas web-scraping
我从https://liiga.fi/tilastot/joukkueet 抓取的统计数据取得了一些进展。
编辑。现在我找到了更好的方法。例如 -> https://liiga.fi/api/v1/teams/stats/2017/runkosarja/
我如何从那里抓取统计数据,如胜利、进球等并创建统计数据表?
【问题讨论】:
标签: python json pandas web-scraping
只得到这个:
id season ... cacheUpdateDate buyTicketsUrl
0 1 2022 ... 2021-11-09T16:54:56.243678Z NaN
1 4 2022 ... 2021-11-09T16:30:45.387198Z NaN
2 3 2022 ... 2021-11-09T16:57:55.660414Z NaN
3 2 2022 ... 2021-11-09T17:05:34.763264Z NaN
4 6 2022 ... 2021-11-09T16:52:37.081451Z NaN
.. ... ... ... ... ...
518 6909 2022 ... 2021-11-09T17:26:48.886193Z NaN
519 6898 2022 ... 2021-11-09T16:54:08.527658Z NaN
520 6902 2022 ... 2021-11-09T16:30:00.998782Z NaN
521 6910 2022 ... 2021-11-09T17:05:19.950635Z NaN
522 6906 2022 ... 2021-11-09T16:39:19.910866Z NaN
[523 rows x 11 columns]
【讨论】:
您可以将 Pandas DataFrames 用作:
import requests
import json
import pandas as pd
url = "https://liiga.fi/api/v1/games?tournament=all&season=2021"
r = requests.get(url)
r = r.json()
df = pd.DataFrame(r)
print(df)
由于您要重现积分榜,您仍然需要分析您拥有的原始数据。为了帮助您分析数据,您可以将 homeTeam 和 awayTeam 列分别创建为单独的 DataFrames
homeTeam_list = [ homeTeam for homeTeam in df['homeTeam']]
awayTeam_list = [ awayTeam for awayTeam in df['awayTeam']]
df_homeTeam = pd.DataFrame(homeTeam_list)
df_awayTeam = pd.DataFrame(awayTeam_list)
print(df_awayTeam)
通过这种方式,您可以循环计算每场比赛的得分,谁赢了,桌子得分等等。
【讨论】:
.json 文件您只包含原始数据,因此您仍然需要确定每支球队的进球数、胜利数等。在这种情况下,您可以为每个游戏创建 DataFrame,然后分析数据以获得所需的指标。 (我将在我的答案中添加这两个 DataFrame)