Я извлек данные с веб-сайта, используя следующее:
import pandas as pd
import matplotlib.pyplot as plt
stat_dict={'Disposals' : 0,
'Kicks' : 1,
'Marks' : 2,
'Handballs' : 3,
'Goals' : 4,
'Behinds' : 5,
'Hitouts' : 6,
'Tackles' : 7,
'Rebounds' : 8,
'Inside50s' : 9,
'Clearances': 9,
'Clangers' : 10,
'FreesFor' : 11,
'FreesAgainst' : 12,
'ContestedPosessions' : 13,
'UncontestedPosesseions' : 14,
'ContestedMarks' : 15,
'MarksInside50' : 16,
'OnePercenters' : 17,
'Bounces' : 18,
'GoalAssists' : 19,
'Timeplayed' : 20}
team_lower_case='fremantle'
player1="Fyfe, Nat"
stat_required='Disposals'
rounds=8
tables = pd.read_html("https://afltables.com/afl/stats/teams/" +str(team_lower_case)+"/2018_gbg.html")
for df in tables:
df.drop(df.columns[rounds+1:], axis=1, inplace=True) # remove unwanted columns
df.columns = df.columns.droplevel(0) # remove extra index level
stat_table=tables[stat_dict[stat_required]]
player_stat=stat_table[stat_table["Player"]==player1]
, которое производит следующее:
Player R1 R2 R3 R4 R5 R6 R7 R8
8 Fyfe, Nat 22.0 29.0 38.0 25.0 43.0 27.0 33.0 36.0
Как установить индекс для данных встолбец «Игрок»?
Как я могу повернуть заголовки столбцов, чтобы они стали метками строк и наоборот? Вывод, который я ищу, будет следующим:
Round Fyfe, Nat Neale,Lachie
R1 22 37
R2 29 28
Конечный выходной сигнал, который я хотел бы получить, представляет собой диаграмму рассеяния, которая отображает на оси x заголовки столбцов, например, R1, R2 и т. Д., А на оси y - данные строки.
Мне кажется, что я должен иметь возможность напрямую построить фрейм данных, но единственный способ добиться успеха - это сделать следующее:
for round, disp in player_stat.iterrows():
player1_list=[]
player1_list.append(disp)
plt.style.use('ggplot')
plt.scatter(range(1,rounds+1), player1_list, label=player1)
plt.legend(loc="lower right")
plt.title("Disposals per round")
plt.xlabel("Rounds")
plt.ylabel("Disposals")
plt.ylim(ymin=0)
Похоже, мне следует использовать .transpose, которыйблизко к тому, что я хочу, и выводит следующее:
8
Player Fyfe, Nat
R1 22
R2 29
R3 38
R4 25
R5 43
R6 27
R7 33
R8 36