"En parlant du plaisir du Nouvel An japonais, Hakone Ekiden vu dans le salon de thé! Je pense que tout le monde était également enthousiasmé par cette nouvelle année. " Ce n'est pas vrai pour les fans de Hakone Ekiden.
Pourtant, en regardant la télévision avec ma famille enthousiaste, "Une université rapide change chaque année. Il est difficile pour une université d'avoir 10 joueurs rapides la même année." J'étais un peu intrigué par ce point.
Cette année, je me trouvais à l'Université XX (une lettre pour éviter les spoilers), mais Les membres les plus rapides de tous les temps qui sont appelés "dieux de la montagne" ou "dieux en quelque sorte" de chaque université Si vous vous réunissiez au même âge et dirigiez le Hakone Ekiden contre l'université Quelle université sera numéro un?
Je voudrais rechercher "Taraba" à partir des données passées.
Bibliothèques prises en charge
import sys
import os
import glob
import requests
from bs4 import BeautifulSoup
from collections import defaultdict
import numpy
import pandas
Pour chaque université, calculez le record le plus rapide de l'histoire pour chaque section à [^ 1] par heure, Si vous l'appliquez au cours du dernier 92e concours, vous trouverez l'université la plus rapide! ??
[^ 1]: La section distance change pour chaque tournoi, donc à titre de comparaison.
À partir du "Site officiel de Hakone Ekiden"
get_html.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import glob
import requests
from bs4 import BeautifulSoup
# User-Agent
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'
#'From': '[email protected]' # This is another valid field
}
"""
# URL example
http://www.hakone-ekiden.jp/data/data_race.php?racenum=31
"""
def crawl_site(site_url):
#Générer l'URL de la cible d'exploration
tocrawl = [site_url+'?racenum='+str(i) for i in xrange(31, 92)]
return tocrawl
def prepare_html(tocrawl, html_path, identifier_prefix):
crawled = []
for i,site_url in enumerate(tocrawl):
print 'prepare_html:', site_url
r = requests.get(site_url, headers=headers)
filename = html_path + identifier_prefix + site_url.split('=')[1] + '.html'
f = open(filename, 'w')
f.write(r.content)
f.close()
if __name__ == '__main__':
# settings
site_url = 'http://www.hakone-ekiden.jp/data/data_race.php'
html_path = './html/'
identifier_prefix = 'hakone'
if not os.path.exists(html_path):
os.mkdir(html_path)
# prepare html files
num_html_files = len(glob.glob(html_path + identifier_prefix + '*.html'))
print 'num_html_files: ' + str(num_html_files)
if num_html_files == 0:
tocrawl = crawl_site(site_url)
prepare_html(tocrawl, html_path, identifier_prefix)
À partir du code HTML acquis et téléchargé localement, les écoles participantes à chaque tournoi sont demandées. Ensuite, téléchargez le html de "Liste des joueurs par université" et
Exemple_31e tournoi_1955_Université Waseda
http://www.hakone-ekiden.jp/data/data_univ.php?race=31&univ=50
De là, en s'appuyant un peu sur Beautiful Soup,
Correspondance entre l'université et l'ID, les universités participantes pour chaque tournoi
print universities
print len(universities)
print
print universities_each_year
print len(universities_each_year)
{4: u'\u6771\u4eac\u6559\u80b2\u5927\u5b66', 9: u'\u95a2\u6771\u5b66\u9023\u9078\u629c', 10: u'\u65e5\u672c\u5b66\u9023\u9078\u629c', 11: u'\u9752\u5c71\u5b66\u9662\u5927\u5b66', 12: u'\u4e9c\u7d30\u4e9c\u5927\u5b66', 13: u'\u795e\u5948\u5ddd\u5927\u5b66', 15: u'\u95a2\u6771\u5b66\u9662\u5927\u5b66', 16: u'\u6176\u5fdc\u7fa9\u587e\u5927\u5b66', 17: u'\u570b\u5b78\u9662\u5927\u5b66', 18: u'\u56fd\u58eb\u8218\u5927\u5b66', 19: u'\u99d2\u6fa4\u5927\u5b66', 20: u'\u57fc\u7389\u5927\u5b66', 21: u'\u9806\u5929\u5802\u5927\u5b66', 22: u'\u57ce\u897f\u5927\u5b66', 24: u'\u5c02\u4fee\u5927\u5b66', 25: u'\u5927\u6771\u6587\u5316\u5927\u5b66', 26: u'\u62d3\u6b96\u5927\u5b66', 27: u'\u4e2d\u592e\u5b66\u9662\u5927\u5b66', 28: u'\u4e2d\u592e\u5927\u5b66', 29: u'\u7b51\u6ce2\u5927\u5b66', 30: u'\u5e1d\u4eac\u5927\u5b66', 31: u'\u6771\u6d77\u5927\u5b66', 32: u'\u6771\u4eac\u5b66\u82b8\u5927\u5b66', 33: u'\u6771\u4eac\u5927\u5b66', 34: u'\u6771\u4eac\u8fb2\u696d\u5927\u5b66', 36: u'\u6771\u6d0b\u5927\u5b66', 38: u'\u65e5\u672c\u5927\u5b66', 39: u'\u65e5\u672c\u4f53\u80b2\u5927\u5b66', 40: u'\u798f\u5ca1\u5927\u5b66', 41: u'\u5e73\u6210\u56fd\u969b\u5927\u5b66', 42: u'\u9632\u885b\u5927\u5b66', 43: u'\u6cd5\u653f\u5927\u5b66', 44: u'\u660e\u6cbb\u5927\u5b66', 45: u'\u5c71\u68a8\u5b66\u9662\u5927\u5b66', 46: u'\u6a2a\u6d5c\u5e02\u7acb\u5927\u5b66', 47: u'\u6a2a\u6d5c\u56fd\u7acb\u5927\u5b66', 48: u'\u7acb\u6559\u5927\u5b66', 49: u'\u7acb\u547d\u9928\u5927\u5b66', 50: u'\u65e9\u7a32\u7530\u5927\u5b66', 78: u'\u4e0a\u6b66\u5927\u5b66', 94: u'\u5275\u4fa1\u5927\u5b66', 95: u'\u95a2\u6771\u5b66\u751f\u9023\u5408'}
42
defaultdict(<type 'list'>, {31: [28, 38, 50, 4, 43, 24, 36, 48, 34, 39, 13, 32, 46, 47, 26], 32: [28, 38, 4, 43, 39, 50, 48, 24, 36, 34, 32, 13, 46, 44, 47], 33: [38, 28, 48, 4, 50, 43, 39, 24, 34, 36, 32, 18, 46, 44, 13], 34: [38, 28, 4, 39, 43, 50, 48, 36, 24, 21, 34, 18, 32, 13, 46], 35: [28, 38, 4, 48, 43, 50, 39, 36, 24, 34, 18, 21, 32, 20, 13, 16], 36: [28, 38, 36, 4, 50, 24, 48, 43, 39, 44, 18, 34, 21, 32, 13], 37: [28, 38, 24, 39, 44, 36, 50, 43, 34, 21, 18, 4, 32, 48, 42], 38: [28, 44, 39, 24, 38, 48, 34, 43, 36, 18, 21, 50, 4, 16, 13], 39: [28, 44, 38, 39, 21, 18, 43, 4, 24, 50, 36, 34, 16, 48, 42], 40: [28, 38, 18, 36, 21, 39, 50, 43, 44, 24, 4, 48, 34, 16, 46, 49, 40], 41: [38, 28, 21, 18, 39, 50, 24, 44, 36, 4, 48, 43, 34, 11, 13], 42: [21, 38, 39, 28, 18, 36, 50, 24, 43, 44, 48, 4, 11, 13, 16], 43: [38, 21, 18, 28, 39, 36, 24, 43, 4, 50, 12, 13, 19, 11, 44], 44: [38, 39, 21, 36, 28, 18, 11, 12, 43, 50, 48, 4, 24, 19, 25], 45: [39, 38, 21, 18, 36, 24, 25, 43, 11, 12, 28, 4, 19, 50, 44], 46: [39, 21, 38, 18, 25, 24, 36, 12, 28, 19, 4, 11, 43, 13, 26], 47: [39, 21, 38, 18, 12, 36, 25, 28, 19, 24, 4, 11, 50, 43, 16], 48: [39, 38, 25, 21, 18, 28, 24, 36, 19, 12, 34, 4, 11, 26, 44], 49: [39, 25, 38, 21, 18, 28, 12, 34, 19, 24, 36, 4, 11, 31, 50], 50: [38, 25, 21, 34, 39, 18, 28, 36, 31, 12, 24, 19, 4, 11, 43, 50, 44, 26, 16, 13], 51: [25, 21, 39, 34, 38, 28, 18, 36, 19, 31, 29, 12, 24, 11, 50], 52: [25, 39, 34, 28, 21, 38, 19, 18, 12, 36, 29, 24, 31, 43, 11], 53: [39, 34, 25, 21, 38, 31, 19, 28, 36, 24, 12, 18, 50, 43, 26], 54: [39, 21, 25, 34, 38, 50, 28, 43, 36, 31, 24, 18, 19, 26, 29], 55: [21, 39, 25, 50, 38, 36, 34, 26, 24, 18, 31, 19, 28, 43, 12], 56: [39, 21, 50, 25, 38, 34, 36, 29, 24, 31, 19, 18, 26, 43, 28], 57: [21, 39, 25, 34, 50, 29, 38, 19, 24, 36, 28, 31, 18, 43, 26], 58: [21, 39, 38, 25, 50, 36, 29, 28, 24, 18, 31, 12, 19, 26, 34], 59: [39, 50, 21, 38, 31, 25, 36, 29, 34, 28, 18, 19, 12, 24, 43], 60: [50, 39, 21, 25, 38, 31, 34, 36, 29, 24, 28, 19, 18, 12, 26, 43, 33, 44, 32, 16], 61: [50, 21, 39, 38, 25, 28, 34, 29, 36, 24, 19, 18, 31, 12, 44], 62: [21, 50, 25, 19, 34, 39, 31, 28, 18, 24, 29, 38, 36, 12, 44], 63: [21, 39, 28, 38, 25, 31, 24, 50, 29, 36, 18, 19, 34, 44, 45], 64: [21, 25, 39, 38, 28, 34, 18, 31, 50, 44, 45, 19, 36, 24, 29], 65: [21, 39, 28, 25, 38, 19, 45, 31, 34, 50, 44, 18, 29, 36, 43], 66: [25, 38, 28, 45, 21, 39, 18, 31, 50, 43, 24, 34, 36, 19, 12], 67: [25, 45, 28, 38, 39, 21, 34, 31, 19, 43, 50, 24, 18, 44, 36], 68: [45, 38, 21, 28, 25, 50, 24, 19, 34, 31, 39, 43, 18, 13, 12], 69: [50, 45, 28, 24, 38, 19, 43, 13, 21, 39, 36, 34, 12, 31, 25], 70: [45, 50, 21, 28, 31, 24, 13, 39, 38, 43, 19, 12, 34, 18, 36, 27, 15, 25, 16, 29], 71: [45, 50, 28, 38, 39, 13, 24, 31, 34, 36, 12, 27, 19, 25, 21], 72: [28, 50, 21, 31, 25, 43, 12, 34, 39, 24, 36, 19, 38, 45, 13], 73: [13, 45, 25, 28, 50, 19, 36, 31, 21, 39, 24, 12, 26, 43, 34], 74: [13, 19, 45, 28, 21, 50, 38, 26, 25, 36, 39, 24, 15, 31, 30], 75: [21, 19, 13, 28, 31, 45, 25, 38, 36, 50, 26, 39, 27, 43, 30], 76: [19, 21, 28, 30, 38, 50, 31, 13, 45, 43, 39, 25, 15, 26, 36], 77: [21, 19, 28, 43, 13, 25, 30, 38, 45, 50, 39, 26, 41, 17, 31], 78: [19, 21, 50, 28, 25, 13, 12, 30, 45, 38, 39, 15, 24, 31, 43], 79: [19, 45, 38, 25, 28, 36, 31, 21, 39, 27, 13, 26, 30, 17, 50, 43, 12, 15, 24, 9], 80: [19, 31, 12, 43, 21, 36, 28, 13, 39, 38, 27, 45, 25, 30, 34, 50, 18, 15, 22, 10], 81: [19, 39, 38, 28, 21, 31, 12, 43, 27, 13, 50, 25, 36, 45, 22, 30, 24, 44, 26, 9], 82: [12, 45, 38, 21, 19, 31, 43, 28, 39, 36, 22, 25, 50, 17, 24, 13, 27, 44, 18, 9], 83: [21, 38, 31, 39, 36, 50, 19, 28, 24, 12, 22, 45, 27, 25, 43, 44, 13, 17, 18, 9], 84: [19, 50, 27, 9, 12, 45, 28, 30, 38, 36, 22, 39, 18, 24, 13, 43, 34, 31, 25, 21], 85: [36, 50, 39, 25, 27, 45, 38, 44, 9, 28, 18, 34, 19, 24, 13, 12, 26, 31, 21, 30, 78, 11, 22], 86: [36, 19, 45, 28, 34, 22, 50, 11, 39, 44, 30, 31, 27, 78, 38, 9, 24, 25, 43, 12], 87: [50, 36, 19, 31, 44, 28, 26, 39, 11, 17, 22, 45, 30, 34, 13, 27, 24, 9, 78, 38], 88: [36, 19, 44, 50, 11, 22, 21, 28, 45, 17, 18, 31, 30, 26, 13, 78, 9, 27, 39, 34], 89: [39, 36, 19, 30, 50, 21, 44, 11, 43, 27, 45, 25, 9, 17, 38, 13, 34, 78, 22, 28], 90: [36, 19, 39, 50, 11, 44, 38, 30, 26, 25, 43, 27, 31, 34, 28, 21, 17, 13, 22, 78, 24, 18, 45], 91: [11, 19, 36, 44, 50, 31, 22, 27, 45, 25, 30, 21, 38, 17, 39, 26, 13, 78, 28, 94, 95]})
61
Il semble qu'il y ait 42 écoles participantes uniques dans le passé (* Cependant, les universités avant et après le changement de nom sont comptées séparément (car il semble qu'un identifiant différent soit attribué sur la page officielle)).
Convertissez une chaîne de caractères telle que "1 heure 06 minutes 49 secondes" lue dans le tableau. (Il semble y avoir une bonne bibliothèque, mais ...)
python
def convert_hour(hour_in_ja):
minutes_per_hour = 60.0
seconds_per_minute = 60.0
try:
hour = int(hour_in_ja.split(u'temps')[0])
minute = int(hour_in_ja.split(u'temps')[1].split(u'Minutes')[0])
second = int(hour_in_ja.split(u'temps')[1].split(u'Minutes')[1].split(u'Secondes')[0])
except:
print 'inside except:', hour_in_ja
return float('NaN')
hour_in_num = hour + minute/minutes_per_hour + second/(minutes_per_hour*seconds_per_minute)
return hour_in_num
python
dict_of_dataframe = {}
for a_univ_id in universities.keys():
# make data frame for each univ
df = pandas.DataFrame(df_array, index=df_index, columns=df_columns)
....
# assign df to a univ
dict_of_dataframe[a_univ_id] = df
Par exemple
python
#Université Meiji
print dict_of_dataframe[44]
1 2 3 4 5 6 7 \
32 1.280556 1.247500 1.321389 1.288056 1.772222 1.436111 1.356944
33 1.241389 1.172500 1.278889 1.241389 1.689167 1.406944 2.146944
36 1.190556 1.114167 1.371389 1.180278 1.515556 1.280833 1.136111
37 1.150556 1.313333 1.094444 1.145833 1.498611 1.265556 1.157778
38 1.139444 1.417778 1.135000 1.184444 1.479722 1.229444 1.154722
39 1.133056 1.362500 1.168889 1.096667 1.470000 1.188056 1.073889
40 1.117222 1.338611 1.129444 1.082222 1.419444 1.169167 1.142222
41 1.150278 1.333611 1.095556 1.122222 1.500278 1.178056 1.121389
42 1.109444 1.344444 1.132778 1.145556 1.453333 1.114167 1.174722
43 1.145833 1.365556 1.128333 1.648889 1.328889 1.017222 1.265278
45 1.256667 1.367778 1.303611 1.499167 1.517500 1.093889 1.183056
48 1.226667 1.473611 1.197500 1.200556 1.325556 1.087222 1.261667
50 1.160000 1.403889 1.173889 1.216111 1.417222 1.161944 1.229444
60 1.121667 1.316111 1.211667 1.204444 1.348889 1.084722 1.224444
61 1.145278 1.203889 1.190833 1.168611 1.346389 1.053611 1.207500
62 1.158056 1.244722 1.177222 1.150833 1.299444 1.135278 1.173889
63 1.094444 1.224444 1.125833 1.173333 1.296111 1.079444 1.155833
64 1.093611 1.221667 1.125556 1.152778 1.318611 1.052222 1.133889
65 1.124722 1.233056 1.129167 1.153333 1.304722 1.039167 1.150833
67 1.099722 1.148333 1.088889 1.135833 1.282778 1.134444 1.198889
81 1.070556 1.179167 1.093889 1.078611 1.267500 1.024444 1.133889
82 1.066667 1.206111 1.088611 0.952778 1.399444 1.030556 1.094167
83 1.097778 1.156667 1.095000 0.971111 1.344167 1.018056 1.120278
85 1.081389 1.163056 1.081389 0.924444 1.399167 0.993333 1.086111
86 1.040833 1.148889 1.052222 0.932500 1.454722 1.020000 1.108611
87 1.075278 1.126667 1.056389 0.946944 1.331111 1.028889 1.091111
88 1.046111 1.146389 1.068333 0.914722 1.326111 1.005278 1.069722
89 1.062778 1.195278 1.107500 0.972500 1.405556 0.971944 1.083611
90 1.033889 1.154167 1.057500 0.926667 1.428056 0.971111 1.078611
91 1.035278 1.132222 1.044722 0.916667 1.353611 0.998333 1.095833
8 9 10
32 1.347222 1.340278 1.350833
33 1.424444 1.257500 1.465556
36 1.361667 1.160833 1.299167
37 1.130833 1.319167 1.218056
38 1.139722 1.383333 1.173333
39 1.136667 1.332222 1.112500
40 1.136389 1.353889 1.141111
41 1.145556 1.322778 1.122778
42 1.156111 1.324167 1.155000
43 1.234167 1.436944 1.178889
45 1.140278 1.263889 1.221944
48 1.343056 1.547500 1.305833
50 1.321667 1.518611 1.300833
60 1.213889 1.373889 1.220556
61 1.168889 1.273611 1.151389
62 1.295833 1.277778 1.170556
63 1.155833 1.248611 1.167778
64 1.150556 1.270556 1.120833
65 1.191389 1.258889 1.137222
67 1.207778 1.233056 1.273889
81 1.129444 1.206111 1.289444
82 1.161389 1.216111 1.244722
83 1.165278 1.244722 1.252778
85 1.124167 1.231944 1.219444
86 1.139722 1.229722 1.238611
87 1.116944 1.186667 1.177500
88 1.090278 1.194167 1.186111
89 1.127222 1.258056 1.236111
90 1.089167 1.192778 1.237222
91 1.120556 1.149444 1.185833
--Créez manuellement pandas.DataFrame à partir de "Transition of Hakone Station Distance" --pandas.DataFrame. Rangée: 61 tournois (31e-91e tournoi), colonnes: 10 sections (1 à 10 salles)
load_distance.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy
import pandas
df_array = numpy.array([
[22.3, 21.2, 22.1, 21.0, 25.1, 25.1, 21.0, 22.1, 21.2, 22.3],
[22.3, 21.2, 22.1, 21.0, 25.1, 25.1, 21.0, 22.1, 21.2, 22.3],
[22.3, 21.2, 22.1, 21.0, 25.1, 25.1, 21.0, 22.1, 21.2, 22.3],
[22.3, 21.2, 22.1, 21.0, 25.1, 25.1, 21.0, 22.1, 21.2, 22.3],
[22.3, 21.2, 22.1, 21.0, 25.1, 25.1, 21.0, 22.1, 21.2, 22.3],
[22.3, 20.5, 24.7, 20.1, 25.1, 25.1, 20.1, 24.7, 20.5, 22.3],
[22.7, 23.7, 24.7, 20.1, 25.1, 25.1, 20.1, 24.7, 23.7, 22.7],
[22.7, 23.7, 19.9, 20.7, 25.1, 25.1, 20.7, 19.9, 23.7, 22.7],
[22.7, 23.7, 21.4, 19.4, 25.1, 25.1, 19.4, 21.4, 23.7, 22.7],
[22.7, 23.7, 21.4, 20.4, 24.7, 24.7, 20.2, 21.4, 23.7, 22.7],
[22.7, 23.7, 21.4, 20.4, 24.7, 24.7, 20.2, 21.4, 23.7, 22.7],
[22.7, 23.7, 21.4, 21.4, 23.7, 23.7, 21.2, 21.4, 23.7, 22.7],
[22.7, 23.7, 21.4, 21.4, 21.9, 21.9, 21.2, 21.4, 23.7, 22.7],
[22.7, 23.7, 21.4, 21.4, 21.9, 21.9, 21.2, 21.4, 23.7, 22.7],
[21.7, 24.7, 20.2, 23.2, 21.9, 21.9, 23.0, 20.2, 24.7, 21.7],
[21.6, 24.7, 21.5, 23.2, 22.0, 22.0, 21.7, 21.5, 24.7, 21.6],
[21.6, 24.7, 21.5, 23.2, 22.0, 22.0, 21.7, 21.5, 24.7, 21.6],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 25.2, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 25.2, 21.8],
[21.8, 24.4, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.9, 21.4, 21.4, 21.9, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.0, 20.5, 21.4, 21.9, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.0, 20.5, 20.5, 21.3, 22.2, 24.4, 21.8],
[21.8, 24.4, 22.2, 21.0, 20.5, 20.5, 21.3, 22.2, 24.4, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.8],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.8, 22.7, 22.2, 21.0, 20.6, 20.6, 21.3, 22.2, 22.7, 21.3],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 20.9, 20.7, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.3, 23.0, 21.3, 21.0, 20.9, 20.7, 21.2, 21.3, 23.0, 23.0],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.4, 23.2, 21.5, 21.0, 23.4, 20.7, 21.2, 21.5, 23.2, 23.1],
[21.3, 23.1, 21.4, 18.5, 23.2, 20.8, 21.3, 21.4, 23.1, 23.0]
])
#print df_array
def load_distance_df():
df_index = numpy.arange(31,92)
df_columns = numpy.arange(1,11)
df = pandas.DataFrame(df_array, index=df_index, columns=df_columns)
return df
--pandas.Series. Ligne: 10 sections (1 à 10 quartiers) --Pandas. Division pratique entre les DataFrames
make_pandas.py
df_distance = load_distance.load_distance_df()
for univ in dict_of_dataframe:
# replace inf and -inf
dict_of_dataframe_velocity[univ] = (df_distance / dict_of_dataframe[univ] ).replace([numpy.inf, -numpy.inf], numpy.nan)
Mis à part le post-traitement, essentiellement df_distance / dict_of_dataframe[univ] Il est pratique de pouvoir calculer la distance de section / le temps requis pour tous les tournois de chaque université sur une seule ligne.
make_pandas.py
########
#92e
# km/(km/h) = h
########
#92ème distance du tournoi pour chaque section(km)
distance_92th = numpy.array([21.3, 23.1, 21.4, 18.5, 23.2, 20.8, 21.3, 21.4, 23.1, 23.0])
series_dist = pandas.Series(distance_92th, index = numpy.arange(1,11))
########
# km/h
########
hour_ranking = {}
for univ in universities:
max_velocity_for_each_section = dict_of_dataframe_velocity[univ].max()
#Université
print 'Nom de l'université: ', universities[univ], 'id: ', univ
print 'Vitesse maximum(km/h): ', max_velocity_for_each_section
print 'Le temps de trajet le plus court pour chaque section(h): ', series_dist / max_velocity_for_each_section
print 'Temps total requis(h): ', sum(series_dist / max_velocity_for_each_section)
print
# add data
hour_ranking[univ] = sum(series_dist / max_velocity_for_each_section)
Extrait du résultat d'impression ...
python
Nom de l'université:Identifiant de sélection Kanto Gakuren: 9
Vitesse maximum(km/h): 1 20.380952
2 20.222760
3 20.145757
4 22.540250
5 17.379823
6 20.891505
7 19.624582
8 19.383922
9 19.473071
10 19.562456
dtype: float64
Le temps de trajet le plus court pour chaque section(h): 1 1.045093
2 1.142277
3 1.062258
4 0.820754
5 1.334881
6 0.995620
7 1.085373
8 1.104008
9 1.186254
10 1.175722
dtype: float64
Temps total requis(h): 10.9522406546
Pour chaque école participante, en utilisant la vitesse la plus élevée jamais vue dans chaque section Exécutez le déroulement du 92e tournoi (2016) et comparez le temps total requis.
make_pandas.py
for k, v in sorted(hour_ranking.items(), key=lambda x:x[1]):
print 'Nom de l'université: ', universities[k], 'Temps total requis(h): ', v
python
Nom de l'université:Nihon University temps total requis(h): 10.2453132331
Nom de l'université:Université de Chuo Temps total requis(h): 10.3591586209
Nom de l'université:Japan Physical Education University Temps total requis(h): 10.3759579539
Nom de l'université:Waseda University Temps total requis(h): 10.3766071561
Nom de l'université:Université Juntendo Temps total requis(h): 10.4208490227
Nom de l'université:Temps total universitaire spécialisé requis(h): 10.4760277397
Nom de l'université:Durée totale du trajet de l'Université Toyo(h): 10.4816180955
Nom de l'université:Université de Kokushikan Temps total requis(h): 10.5138632405
Nom de l'université:Temps total requis pour l'Université Meiji(h): 10.5169890222
Nom de l'université:Université Hosei Temps total requis(h): 10.6055941866
Nom de l'université:Université agricole de Tokyo Temps total requis(h): 10.6470086075
Nom de l'université:Université Daito Bunka Temps total requis(h): 10.6603316782
Nom de l'université:Université de Komazawa Temps total requis(h): 10.6967026896
Nom de l'université:Université Yamanashi Gakuin Temps total requis(h): 10.7075345827
Nom de l'université:Temps total requis pour l'Université Tokai(h): 10.7491609299
Nom de l'université:Université de Kanagawa Temps total requis(h): 10.8168044546
Nom de l'université:Université Chuo Gakuin Temps total requis(h): 10.8412400185
Nom de l'université:Asia University Temps total requis(h): 10.85684661
Nom de l'université:Université Josai Temps total requis(h): 10.8746325761
Nom de l'université:Université Teikyo Temps total requis(h): 10.9042462208
Nom de l'université:Université Takushoku Temps total requis(h): 10.9080803745
Nom de l'université:Université de Kokugakuin Temps total requis(h): 10.90929883
Nom de l'université:Université Aoyama Gakuin Temps total requis(h): 10.9442540793
Nom de l'université:Sélection Kanto Gakuren Temps total requis(h): 10.9522406546
Nom de l'université:Université de Tsukuba Temps total requis(h): 10.9629683463
Nom de l'université:Université Kamitake Temps total requis(h): 11.069379971
Nom de l'université:Université d'éducation de Tokyo Temps total requis(h): 11.1392697521
Nom de l'université:Université Rikkyo Temps total requis(h): 11.2065269496
Nom de l'université:Université Kanto Gakuin Temps total requis(h): 11.2972643755
Nom de l'université:Union étudiante de Kanto Temps total requis(h): 11.32
Nom de l'université:Temps total requis pour les études japonaises(h): 11.3482872531
Nom de l'université:Université Keio Gijuku Temps total requis(h): 11.5006612565
Nom de l'université:Université de la Soka Temps total requis(h): 11.5277777778
Nom de l'université:Heisei International University Temps total requis(h): 11.6349612092
Nom de l'université:Université de Ritsumeikan Temps total requis(h): 11.7104078624
Nom de l'université:Université de Fukuoka Temps total requis(h): 11.7658274859
Nom de l'université:Université de Tokyo Gakugei Temps total requis(h): 11.8272461166
Nom de l'université:Durée totale du trajet de l'Université de Tokyo(h): 12.1214438077
Nom de l'université:Université de la ville de Yokohama Temps total requis(h): 12.4901800886
Nom de l'université:Université de la Défense Temps total requis(h): 12.542251172
Nom de l'université:Université de Saitama Temps total requis(h): 13.028733025
Nom de l'université:Université nationale de Yokohama Temps total requis(h): 13.1778038298
Cependant, je n'ai pas envie d'y réfléchir activement à cause des problèmes suivants.
――Cet article n'a pas été écrit dans le but de manipuler l'honneur des écoles participantes successives. ――Il y a des problèmes comme indiqué dans [Problèmes], veuillez donc considérer les résultats obtenus à titre de référence uniquement.
Recommended Posts