Versuchen Sie, MLB-Daten auf Mac und Python zu importieren

Umgebung:

Einführung

In diesem Artikel möchte ich Baseballdaten wie Sabre Metrics selbst analysieren! Dies ist eine Zusammenfassung des Ablaufs bis zu dem Punkt, an dem ich die erforderlichen Daten eingegeben und in die Datenbank gestellt habe.

Auslösen

Am 29. Oktober 2015 gewann Softbank die Japan Series in Japan, und die Royals gewannen zum zweiten Mal in Folge die World Series, was für mich als Baseball-Enthusiast eine sehr aufregende Saison ist.

Der Grund, warum ich mich für Sabre interessierte, war, dass ich zuerst Datenanalyse studieren wollte. Als ich dann darüber nachdachte, welche Art von Daten ich analysieren und wie ich das Beste daraus machen sollte, kam ich auf die Idee, meine Lieblings-Baseballdaten mit Python zu hacken.

Daher hoffe ich, dass dieser Artikel denjenigen hilft, die über dasselbe nachdenken.

Retrosheet Leider ist NPB nicht so detailliert wie MLB und kann nicht heruntergeladen werden (es kann durch Scraping gesammelt werden).

Dieses Mal werde ich die MLB-Daten von Retrosheet herunterladen (es gibt andere Lahman usw.) und sie in die Datenbank stellen.

(1) py-retrosheet, Chadwick Retrosheet-Daten sind so wie sie sind sehr schwer zu lesen, und die Datenbereinigung ist sehr mühsam. Es gibt jedoch einige Leute, die solche Daten ordentlich angeordnet haben, daher werde ich diesen Code verwenden.

$ brew update
$ brew install chadwick
$ git clone https://github.com/wellsoliver/py-retrosheet.git

Außerdem werden die für die Verwendung von [py-retrosheet] erforderlichen Bibliotheken heruntergeladen (https://github.com/wellsoliver/py-retrosheet). mysql-python wird für sqlalchemy benötigt und MySQL wird diesmal verwendet.

$ pip install sqlalchemy mysql-python

(2) MySQL Das Herunterladen und Importieren von Daten in SQL erfolgt ebenfalls mit py-retrosheet. Der Rest besteht in der Pflege einer Datenbank wie MySQL.

$ brew install mysql

Nehmen Sie als Nächstes verschiedene Einstellungen für MySQL vor. (Erstellen und verwenden Sie dieses Mal einen Testbenutzer.)

$ mysql_secure_installation #Sicherheitseinstellungen wie Passwort
$ mysql.server start
$ mysql -u root -p
Enter password:Was Sie einstellen

mysql> CREATE DATABASE retrosheet #Datenbank erstellen
mysql> CREATE USER test IDENTIFIED BY "*****(Your Password)" #Erstellen Sie einen Testbenutzer mit dem Namen test
mysql> GRANT ALL ON retrosheet.* TO test #Legen Sie den Retrosheet-Datenbankzugriff für Testbenutzer fest

Importieren Sie anschließend das Schema mit dem zuvor erstellten Testbenutzer

$ mysql -u test[USER_NAME] -p retrosheet[DB_NAME] < sql/schema.sql

Damit sind die MySQL-Einstellungen abgeschlossen.

parse.py[line58-59,61]


sql = 'SELECT * FROM rosters WHERE year = %s AND player_id = %s AND team_tx = %s'
res = conn.execute(sql, [row[0], row[1], row[6]])

if results.rowcount() == 1:

parse.py[Überarbeitet]


sql = 'SELECT * FROM rosters WHERE year = ? AND player_id = ? AND team_tx = ?'
res = conn.execute(sql, [row[0], row[1], row[6]])

if len(results.fetchall()) == 1:

(3) Bearbeiten Sie die Datei config.ini

Bearbeiten Sie abschließend die Datei congit.ini und richten Sie die soeben erstellte Datenbank ein

$ cd scripts
$ cp config.ini.dist config.ini
$ vim config.ini  # config.Bearbeitung ini

config.ini


[database]
engine = mysql # or sqlite, postgresql
host = localhost
database = retrosheet
schema = retrosheet
user = test
password = ****** # your password

(4) Schließlich

Laden Sie dann die Daten mit download.py herunter und importieren Sie sie mit parse.py in SQL!

$ python download.py -y 2014  #Geben Sie das Jahr für den Download im Kalender an. Eine Option ist nicht möglich
$ python parse.py -y 2014  #In SQL importieren

Überprüfen Sie damit den Inhalt von SQL, und wenn es ordnungsgemäß importiert werden kann, endet es. Alles was Sie tun müssen, ist die Daten zu analysieren, wie Sie möchten!

mysql> select * from retrosheet.teams;

+---------+-------+---------------+--------------+
| TEAM_ID | LG_ID | LOC_TEAM_TX   | NAME_TEAM_TX |
+---------+-------+---------------+--------------+
| ANA     | A     | Anaheim       | Angels       |
| BAL     | A     | Baltimore     | Orioles      |
| BOS     | A     | Boston        | Red Sox      |
| CHA     | A     | Chicago       | White Sox    |
| CLE     | A     | Cleveland     | Indians      |
| DET     | A     | Detroit       | Tigers       |
| HOU     | A     | Houston       | Astros       |
| KCA     | A     | Kansas City   | Royals       |
| MIN     | A     | Minnesota     | Twins        |
| NYA     | A     | New York      | Yankees      |
| OAK     | A     | Oakland       | Athletics    |
| SEA     | A     | Seattle       | Mariners     |
| TBA     | A     | Tampa Bay     | Rays         |
| TEX     | A     | Texas         | Rangers      |
| TOR     | A     | Toronto       | Blue Jays    |
| ARI     | N     | Arizona       | Diamondbacks |
| ATL     | N     | Atlanta       | Braves       |
| CHN     | N     | Chicago       | Cubs         |
| CIN     | N     | Cincinnati    | Reds         |
| COL     | N     | Colorado      | Rockies      |
| LAN     | N     | Los Angeles   | Dodgers      |
| MIA     | N     | Miami         | Marlins      |
| MIL     | N     | Milwaukee     | Brewers      |
| NYN     | N     | New York      | Mets         |
| PHI     | N     | Philadelphia  | Phillies     |
| PIT     | N     | Pittsburgh    | Pirates      |
| SDN     | N     | San Diego     | Padres       |
| SFN     | N     | San Francisco | Giants       |
| SLN     | N     | St. Louis     | Cardinals    |
| WAS     | N     | Washington    | Nationals    |
+---------+-------+---------------+--------------+

Recommended Posts

Versuchen Sie, MLB-Daten auf Mac und Python zu importieren
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Python auf Mac
Hinweise zum Erstellen von Python und Pyenv auf dem Mac
Installieren Sie Python auf dem Mac
Installieren von Python 3 in einer Mac-Umgebung
Versuchen Sie, mit Mongo in Python auf dem Mac zu arbeiten
Installieren Sie Python 3.4 auf einem Mac
Senden und Empfangen von Binärdaten über serielle Kommunikation mit Python3 (auf Mac)
Versuchen Sie Deepdream auf dem Mac
Installieren Sie Python3 auf einem Mac und erstellen Sie eine Umgebung [Definitive Edition]
Installieren von Python 3 auf einem Mac und Überprüfen der Grundfunktionen Teil 1
Python auf Ruby und wütend Ruby auf Python
Installieren Sie pygame auf python3.4 auf dem Mac
[Python] Hinweise zur Datenanalyse
Umgang mit Python auf Mac
Versuchen Sie "100 Schläge auf Data Science" ①
Aktualisieren Sie die Python, die Sie auf Ihrem Mac hatten, auf 3.7-> 3.8
Installieren Sie pandas 0.14 auf python3.4 [auf Mac]
Hinweise zur Installation von Python auf Ihrem Mac
Catalina auf Mac und Pyenv
Hinweise zum Importieren von Daten aus MySQL oder CSV mit Python
Erstellen einer Python-Umgebung auf einem Mac bis zur Verwendung von Jupyter Lab
Erstellen Sie eine Python-Datenanalyseumgebung auf einem Mac (El Capitan).
Erstellen einer Python-Umgebung auf einem Mac
Wenn Python auf dem Mac verloren geht
Hinweise zu Python- und Wörterbuchtypen
Python 3.6 unter Windows ... und zu Xamarin.
MQTT auf Raspberry Pi und Mac
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Konstruktionsnotiz für die Python-Umgebung auf dem Mac
Installieren Sie Python 3.7 Anaconda auf dem MAC, aber Python 2
Installieren Sie python3 auf einem Mac (El Capitan)
Verknüpfen Sie Modelica und Python unter Windows
Hashing von Daten in R und Python
Erstellen einer Umgebung für Python3.8 auf einem Mac
Installieren Sie Fabric unter Ubuntu und versuchen Sie es
Wenn die Installation von Python 3.5.0 auf einem Mac fehlschlägt
Versuchen Sie, Jupyter Notebook auf einem Mac auszuführen
Rufen Sie C / C ++ von Python auf dem Mac auf
Aktualisieren Sie Mac Python von 2 auf 3
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Ein Python-Skript, das auf dem Mac erstellte ._DS_Store- und ._ * -Dateien löscht
Datenpipeline-Aufbau mit Python und Luigi
Cisco Catalyst IOS-Python und Bash unter XE
Erstellen Sie Python 3 und OpenCV unter Ubuntu 18.04
Virtuelle Python-Umgebung und Pakete unter Ubuntu
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Einführung in MAMP + Python + SQL Alchemy (MySQL-Python) auf dem Mac
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Versuchen Sie Python
Ein Memo mit Python2.7 und Python3 in CentOS
Python-Datenstruktur und interne Implementierung ~ Liste ~
Verfolgen Sie aktive Anwendungen auf einem Mac mit Python
So löschen Sie Python 2.x auf einem Mac.
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Setzen Sie die MeCab-Bindung für Python unter Windows, Mac und Linux mit pip ein
Zeichnen Sie Daten einfach in Shell und Python