Type | Correspondance cible | Type de vote | probabilité | % |
---|---|---|---|---|
BIG | 14 | 1,0,2 | 1/4,782,969 | 0.00000020907 |
MEGA BIG | 12 | 1,2,3,4 | 1/16,777,216 | 0.0000000596 |
DataFrame
.DataFrame
séparé pour J1, J2 et J3 uniquement.matplotlib
.① Obtenez les données de la page calendrier / résultats de Jleague Data Site de 2014 à 2019
Année th> | Tournoi th> | Section th> | Jour du match th> | Heure K / O th> | Accueil th> | Score e> | Absent th> | Stade th> | Participants th> | émission de télévision th> | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2014 | J1 | Section 1 Jour 1 td> | 03/01 (samedi) td> | 14:04 | C Osaka td> | 0-1 | Hiroshima td> | Yanmar td> | 37079 | Scaper! / Scaper! Service premium / synthèse NHK td> |
1 | 2014 | J1 | Section 1 Jour 1 td> | 03/01 (samedi) td> | 14:04 | Nagoya td> | 2-3 | Shimizu td> | Toyoda Su td> | 21657 | Scaper! / Scaper! Service Premium / NHK Nagoya / NHK Shizuoka td> |
2 | 2014 | J1 | Section 1 Jour 1 td> | 03/01 (samedi) td> | 14:05 | Torisu td> | 5-0 | Tokushima td> | Beasta td> | 14296 | Scaper! / Scaper! Service Premium / NHK Tokushima / NHK Saga td> |
3 | 2014 | J1 | Section 1 Jour 1 td> | 03/01 (samedi) td> | 14:05 | Kofu td> | 0-4 | Kashima td> | National td> | 13809 | Scaper! / Scaper! Service Premium / NHK Kofu / NHK Mito td> |
4 | 2014 | J1 | Section 1 Jour 1 td> | 03/01 (samedi) td> | 14:05 | Sendai td> | 1-2 | Niigata td> | Votresta td> | 15852 | Scaper! / Scaper! Service Premium / NHK Sendai / NHK Niigata td> |
(2) Lisez le fichier CSV obtenu en (1) et créez un DataFrame
.
col_name = ['année','Tournoi','section','Jour de match','K/O temps','domicile','But','Une façon','Stade','Visiteurs','Diffusion TV']
results = pd.DataFrame(index=[], columns=col_name)
for f in files:
tmp_data = pd.read_csv(f, sep=',', encoding='utf-8')
results = results.append(tmp_data, ignore_index=True, sort=False)
③ De plus, créez DataFrame
séparément pour J1, J2 et J3 uniquement.
#Score total des données pour J1, J2 et J3 uniquement
score_J1 = score_data[score_data['Tournoi'] == 'J1']
idx_J1 = sorted(score_J1['Score total'].unique())
scoreJ1 = pd.DataFrame({'Score total':idx_J1, 'cnt':score_J1['Score total'].value_counts()}, index=idx_J1)
scoreJ1 = scoreJ1.reset_index().drop('index', axis=1)
score_J2 = score_data[score_data['Tournoi'] == 'J2']
idx_J2 = sorted(score_J2['Score total'].unique())
scoreJ2 = pd.DataFrame({'Score total':idx_J2, 'cnt':score_J2['Score total'].value_counts()}, index=idx_J2)
scoreJ2 = scoreJ2.reset_index().drop('index', axis=1)
score_J3 = score_data[score_data['Tournoi'] == 'J3']
idx_J3 = sorted(score_J3['Score total'].unique())
scoreJ3 = pd.DataFrame({'Score total':idx_J3, 'cnt':score_J3['Score total'].value_counts()}, index=idx_J3)
scoreJ3 = scoreJ3.reset_index().drop('index', axis=1)
④ Créez 4 graphiques avec matplotlib
.
#Graph J1, J2, J3 et le tout
fig = plt.figure(figsize=(16,9),dpi=144)
fig.subplots_adjust(hspace=0.4)
#Paramètres de style de graphique d'origine
plt.style.use("mystyle")
plt.rcParams["font.family"] = "IPAexGothic"
#Pour stocker des objets graphiques
axes = []
score_list = [scoreJ1['Score total'], scoreJ2['Score total'], scoreJ3['Score total'], score_all['Score total']]
cnt_list = [scoreJ1['cnt'], scoreJ2['cnt'], scoreJ3['cnt'], score_all['cnt']]
cat_list = ['J1', 'J2', 'J3', 'ALL']
#Parcourez 4 graphiques de J1, J2, J3, ALL
for i in range(4):
axes.append(fig.add_subplot(4,1,i+1))
axes[i].bar(score_list[i], cnt_list[i])
[axes[i].text(score_list[i][s], cnt_list[i][s]+25, str(score), size=12, color='r', ha='center') for s, score in enumerate(cnt_list[i])]
axes[i].set_xticks(np.arange(0,16,1))
axes[i].set_ylabel(cat_list[i])
axes[i].set_ylim(0,1500)
axes[i].text(15-1, 1500-200, 'n:'+str(sum(cnt_list[i])))
plt.xlabel('Score total')
txt1 = 'J'ai essayé de visualiser le score total du match dans la J League.'
fig.text(.05, .9, txt1, fontsize=32, horizontalalignment="left")
txt2 = "Source: site de données JLeague"
fig.text(.9, .05, txt2, fontsize=14, horizontalalignment="right")
plt.savefig('./img/score.png')
plt.show()
⑤ Ajoutez la colonne "Mega" à "Score total" avec 1 point ou moins, 2 points, 3 points, 4 points ou plus de "MEGA BIG"
#Faire une classification de score MEGA
def mega(df):
if df in (2, 3):
return df
elif df <= 1:
return 1
elif df >=4:
return 4
score_data['Mega'] = score_data['Score total'].apply(mega)
⑥ Faites un graphique des résultats agrégés.
Recommended Posts