[PYTHON] J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas

introduction

Cela m'intéressait en tant que thème d'analyse de données, alors je l'ai essayé.

Le site auquel j'ai fait référence est ici.

Flux de prédiction de courses de chevaux

Si vous souhaitez créer un modèle prédictif à partir de zéro, vous devez suivre les étapes suivantes:

  1. Récupération des données du site de courses de chevaux
  2. Prétraitement des données
  1. Divisez en données d'entraînement et données de test
  2. Construction de modèles
  1. Prédisez la course que vous souhaitez prédire

Cette fois, je résumerai brièvement les éléments liés au grattage en 1.

À propos du grattage

net.keiba.com J'ai gratté ce site.

point important

Récupérer une grande quantité de données en une seule fois met une charge sur le serveur. En insérant time.sleep (1), il attend en demandant race_id_list toutes les secondes. On dit que c'est une manière de réduire la charge du serveur par ceci.

import pandas pd
from tqdm import tqdm_notebook as tqdm
import time

def scrape_race_results(race_id_list):
    race_results={}
    for race_id in tqdm(race_id_list):
        try:
            url = 'https://db.netkeiba.com/race/'+ race_id
            race_results[race_id]= pd.read_html(url)[0]
            time.sleep(1)
        except IndexError:
            continue
        except:
            break
    return race_results

Mettez la race que vous voulez enregistrer dans ce race_id. Par exemple, supposons que vous ayez un ID de «202009020611». c'est,

2020 → Nombre d'années
09 → Localisation(Hanshin pour 09, Ogura pour 10, etc.)
02 → mois
06 → Soleil
11 → Nombre de courses

Est montré.

Vous pouvez le voir de cette manière comme un essai.

image.png

Nous analyserons les données à l'aide de pandas de base. Pour une tranquillité d'esprit, enregistrez-le en tant que fichier pickle et csv.

En supposant que les données acquises sont stockées dans resluts_new, ce sera comme suit.

results_new.to_pickle('results_new2017-2020')
results_new.to_csv('results_new2017-2020.csv',encoding="SHIFT-JIS")

À la fin

J'ai résumé la méthode d'acquisition des données facilement.

Recommended Posts

J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai créé une fonction pour récupérer les données de la colonne de base de données par colonne en utilisant sql avec sqlite3 de python [sqlite3, sql, pandas]
J'ai essayé d'utiliser la base de données (sqlite3) avec kivy
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai appris le grattage à l'aide de sélénium pour créer un modèle de prédiction de courses de chevaux.
J'ai essayé d'effectuer une analyse de cluster de clients à l'aide des données d'achat
Comment récupérer des données de courses de chevaux à l'aide de pandas read_html
J'ai essayé d'automatiser le dépôt de 100 yens des courses de chevaux Rakuten (python / sélénium)
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
[Python] J'ai essayé d'obtenir Json de squid ring 2
J'ai essayé d'utiliser Python (3) au lieu d'un calculateur de fonctions
J'ai essayé de dessiner un diagramme de configuration à l'aide de diagrammes
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Chaque fois que j'essaye de lire un fichier csv en utilisant des pandas, j'obtiens une erreur numpy.
Je voulais collecter beaucoup d'images, j'ai donc essayé d'utiliser "google image download"
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé de commencer avec Hy ・ Définir une classe
J'ai essayé de ramper et de gratter le site de courses de chevaux Partie 2
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai créé un éditeur de texte simple en utilisant PyQt
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc
J'ai essayé d'utiliser GrabCut d'OpenCV
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
J'ai essayé d'utiliser PI Fu pour générer un modèle 3D d'une personne à partir d'une image
J'ai essayé d'automatiser la construction d'un environnement pratique à l'aide de l'API SoftLayer d'IBM Cloud
Un mémorandum lors de l'acquisition automatique avec du sélénium
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
Créez une fonction pour obtenir le contenu de la base de données dans Go
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc Préparation 1
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
J'ai essayé de créer un linebot (implémentation)
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé de créer un linebot (préparation)
J'ai essayé de commencer avec Hy
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
J'ai essayé de dessiner une ligne en utilisant une tortue
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai créé une API Web
J'ai essayé d'utiliser pipenv, alors prenez note
Vectorisation du pedigree des courses de chevaux à l'aide de fastText
J'ai essayé la détection 3D d'une voiture
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim
Un mémorandum sur la façon d'écrire des pandas que j'ai tendance à oublier personnellement
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.