[PYTHON] Wie man Pferderenndaten mit pandas read_html kratzt

Zweck

Prognostizieren Sie Pferderennen mit maschinellem Lernen und streben Sie eine Wiederherstellungsrate von 100% an.

Was ist diesmal zu tun?

Scraping alle Rennergebnisse 2019 von netkeiba.com. Daten mit einem Tabellen-Tag können mithilfe von pandas read_html in einer Zeile abgekratzt werden, was praktisch ist.

pd.read_html("https://db.netkeiba.com/race/201902010101")[0]

スクリーンショット 2020-07-04 22.19.07.png

Quellcode

Da Race_id jedem Rennen auf netkeiba.com zugewiesen ist, erstellen Sie bei Eingabe einer Liste von Race_id eine Funktion, die jedes Rennergebnis zusammenkratzt und in einem Wörterbuchtyp zurückgibt.

import pandas as pd
import time
from tqdm.notebook import tqdm

def scrape_race_results(race_id_list, pre_race_results={}):
    race_results = pre_race_results
    for race_id in tqdm(race_id_list):
        if race_id in race_results.keys():
            continue
        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

Dieses Mal möchte ich die Ergebnisse aller Rennen im Jahr 2019 kratzen, daher werde ich 2019 eine Liste aller Race_ids erstellen.

race_id_list = []
for place in range(1, 11, 1):
    for kai in range(1, 6, 1):
        for day in range(1, 9, 1):
            for r in range(1, 13, 1):
                race_id = (
                    "2019"
                    + str(place).zfill(2)
                    + str(kai).zfill(2)
                    + str(day).zfill(2)
                    + str(r).zfill(2)
                )
                race_id_list.append(race_id)

Konvertieren Sie es nach dem Scraping in den Pandas DataFrame-Typ und speichern Sie es als Pickle-Datei.

results = scrape_race_results(race_id_list)
for key in results:
    results[key].index = [key] * len(results[key])
results = pd.concat([results[key] for key in results], sort=False)
results.to_pickle('results.pickle')

Nächster Artikel verwendet BeautifulSoup, um detaillierte Daten wie Renntermine und Wetter zu kratzen! Darüber hinaus erklären wir im Video ausführlich! Datenanalyse und maschinelles Lernen beginnend mit der Vorhersage von Pferderennen スクリーンショット 2020-07-04 22.03.00.png

Recommended Posts

Wie man Pferderenndaten mit pandas read_html kratzt
So kratzen Sie Pferderenndaten mit Beautiful Soup
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
So erhalten Sie Artikeldaten mithilfe der Qiita-API
So suchen Sie HTML-Daten mit Beautiful Soup
Schaben 2 Wie man kratzt
Verwendung von Pandas 2
So kratzen Sie Bilddaten von Flickr mit Python
So konvertieren Sie horizontal gehaltene Daten mit Pandas in vertikal gehaltene Daten
So extrahieren Sie mit Pandas Daten, denen der Wert nan nicht fehlt
[Python] Umgang mit Pandas read_html Lesefehler
So extrahieren Sie mit Pandas Daten, denen der Wert nan nicht fehlt
Wie man Pandas Rolling benutzt
Datenrabatfluss für Pferderennen
Umgang mit Datenrahmen
Datenanalyse mit Python-Pandas
Hinzufügen neuer Daten (gerade Linien und Diagramme) mit matplotlib
So erhalten Sie einen Überblick über Ihre Daten in Pandas
Data Science-Begleiter in Python, wie man Elemente in Pandas spezifiziert
So installieren Sie Python mit Anaconda
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
[Python] Wie man MP3-Daten fFT
Lesen von e-Stat-Subregionsdaten
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Wie man nüchtern mit Pandas schreibt
[Python] Verwendung der Pandas-Serie
Scrapping von Pferderenndaten im Colaboratory
Umgang mit unausgeglichenen Daten
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
So formatieren Sie eine Tabelle mit Pandas Apply, Pivot und Swaplevel
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Aufblasen von Daten (Datenerweiterung) mit PyTorch
So aktualisieren Sie eine in Tableau gepackte Arbeitsmappen-Datenquelle mit Python
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Sammeln von Daten zum maschinellen Lernen
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
Ich habe das Schaben mit Selen gelernt, um ein Vorhersagemodell für Pferderennen zu erstellen.
Zeichnen von Daten einer Galaxie mit sichtbarem Licht mithilfe der OpenNGC-Datenbank in Python
So sammeln Sie Twitter-Daten ohne Programmierung
[Pandas] Was ist set_option?
So zeichnen Sie ein Diagramm mit Matplotlib
So richten Sie SVM mit Optuna ein
So installieren Sie ein Paket mithilfe eines Repositorys
Konvertieren Sie Rasterdaten mithilfe von Pandas in zeilenhaltige (?) Daten
So stellen Sie xg boost mit Optuna ein
So weisen Sie den Index im Pandas-Datenrahmen neu zu
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Verwendung von "deque" für Python-Daten
So laden Sie YouTube-Videos mit pytube3 herunter
Umgang mit Zeitreihendaten (Implementierung)
Lesen von CSV-Dateien mit Pandas
Wie man Problemdaten mit Paiza liest
Vektorisierung des Stammbaums von Pferderennen mit fastText
Verwendung von pandas Timestamp und date_range
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)
So zeigen Sie eine Karte mit der Google Map API (Android) an
Erstellen von CSV-Beispieldaten mit Hypothese
Versuchen Sie, mit django-import-export csv-Daten zu django hinzuzufügen