Essayez d'importer des données MLB sur Mac et Python

environnement:

introduction

Dans cet article, je souhaite analyser moi-même les données de baseball comme Sabre Metrics! Ceci est un résumé du flux jusqu'au point où j'ai apporté les données nécessaires que j'ai faites et les ai mises dans la base de données.

Déclencheur

Le 29 octobre 2015, Softbank a remporté la série japonaise au Japon et les Royals ont remporté la série mondiale pour la deuxième fois consécutive, ce qui est une saison très excitante pour moi en tant que passionné de baseball.

La raison pour laquelle je m'intéressais à Sabre était que je voulais d'abord étudier l'analyse des données. Ensuite, quand j'ai réfléchi au type de données que je devais analyser et comment en tirer le meilleur parti, je suis arrivé à l'idée de pirater mes données de baseball préférées avec Python.

Par conséquent, j'espère que cet article sera d'une certaine aide pour ceux qui pensent à la même chose.

Retrosheet Malheureusement, NPB n'est pas aussi détaillé que MLB et ne peut pas être téléchargé (il peut être collecté par grattage).

Donc, cette fois, je vais télécharger les données MLB depuis Retrosheet (il y a d'autres Lahman etc.) et les mettre dans la base de données.

(1) py-retrosheet, Chadwick Les données Retrosheet sont très difficiles à lire telles quelles et le nettoyage des données est très gênant. Cependant, il y a des gens qui ont organisé ces données soigneusement, donc je vais utiliser ce code.

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

Il télécharge également les bibliothèques nécessaires pour utiliser py-retrosheet. mysql-python requis pour sqlalchemy et MySQL utilisé cette fois.

$ pip install sqlalchemy mysql-python

(2) MySQL Le téléchargement et l'importation de données vers SQL se font également avec py-retrosheet, le reste est donc de maintenir une base de données telle que MySQL.

$ brew install mysql

Ensuite, définissez divers paramètres pour MySQL. (Cette fois, créez et utilisez un utilisateur de test)

$ mysql_secure_installation #Paramètres de sécurité tels que le mot de passe
$ mysql.server start
$ mysql -u root -p
Enter password:Ce que vous définissez

mysql> CREATE DATABASE retrosheet #Créer une base de données
mysql> CREATE USER test IDENTIFIED BY "*****(Your Password)" #Créer un utilisateur de test nommé test
mysql> GRANT ALL ON retrosheet.* TO test #Définir l'accès à la base de données de feuilles rétrospectives pour les utilisateurs de test

Après cela, importez le schéma avec l'utilisateur de test créé précédemment

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

Ceci termine les paramètres MySQL.

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[modifié]


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) Modifier config.ini

Enfin, éditez congit.ini et configurez la base de données que vous venez de créer

$ cd scripts
$ cp config.ini.dist config.ini
$ vim config.ini  # config.édition ini

config.ini


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

(4) Enfin

Ensuite, téléchargez les données avec download.py et importez-les dans SQL avec parse.py!

$ python download.py -y 2014  #Précisez l'année à télécharger dans le calendrier, aucune option n'est possible
$ python parse.py -y 2014  #Importer dans SQL

Vérifiez le contenu de SQL avec ceci, et s'il peut être importé correctement, il se termine. Il ne vous reste plus qu'à analyser les données comme vous le souhaitez!

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

Essayez d'importer des données MLB sur Mac et Python
Installez le sélénium sur votre Mac et essayez-le avec python
python sur mac
Remarques sur la construction de Python et pyenv sur Mac
Installez Python sur Mac
Installer Python 3 dans un environnement Mac
Essayez de travailler avec Mongo en Python sur Mac
Installez Python 3.4 sur Mac
Envoyer et recevoir des données binaires via une communication série avec python3 (sur Mac)
Essayez deepdream sur Mac
Installez Python 3 sur Mac et créez un environnement [Definitive Edition]
Installation de Python 3 sur Mac et vérification du fonctionnement de base Partie 1
Python sur Ruby et Ruby en colère sur Python
Installer pygame sur python3.4 sur Mac
[Python] Notes sur l'analyse des données
Manipulation de python sur mac
Essayez «100 coups sur la science des données» ①
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Installez pandas 0.14 sur python3.4 [sur Mac]
Remarques sur l'installation de Python sur votre Mac
Catalina sur Mac et pyenv
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
Construire un environnement Python sur un Mac, jusqu'au point d'utiliser Jupyter Lab
Créer un environnement d'analyse de données python sur Mac (El Capitan)
Construire un environnement Python sur Mac
Si Python sur Mac disparaît
Notes sur Python et les types de dictionnaire
Python 3.6 sous Windows ... et vers Xamarin.
MQTT sur Raspberry Pi et Mac
Créer un environnement Python sur Mac (2017/4)
Mémo de construction de l'environnement Python sur Mac
Installez Python 3.7 Anaconda sur MAC, mais Python 2
Installer python3 sur Mac (El Capitan)
Lier Modelica et Python sous Windows
Hashing de données en R et Python
Construire un environnement pour python3.8 sur Mac
Installez le fabric sur Ubuntu et essayez
Si l'installation de Python 3.5.0 échoue sur Mac
Essayez d'exécuter Jupyter Notebook sur Mac
Appeler C / C ++ depuis Python sur Mac
Mettre à jour Mac Python de 2 à 3
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Erreur et solution lors de l'installation de python3 avec homebrew sur mac (catalina 10.15)
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Un script python qui supprime les fichiers ._DS_Store et ._ * créés sur Mac
Construction de pipeline de données avec Python et Luigi
Cisco Catalyst IOS-Python et Bash sur XE
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Environnement virtuel Python et packages sur Ubuntu
Essayez de travailler avec des données binaires en Python
Présentation de MAMP + Python + SQL Alchemy (Mysql-Python) sur Mac
Créez un environnement python sur votre Mac
Essayez Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Structure de données Python et implémentation interne ~ Liste ~
Chase des applications actives sur Mac avec Python
Comment effacer Python 2.x sur Mac.
Structure et fonctionnement des données Python (mémo d'apprentissage Python ③)
Créer un environnement Python avec Anaconda sur Mac
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Représentez facilement des données graphiques dans le shell et Python