La documentation de Pandas contient de nombreux exemples de bonnes pratiques pour travailler avec des données stockées dans différents formats.
Cependant, je n'arrive pas à trouver de bons exemples pour travailler avec des bases de données comme MySQL par exemple.
Quelqu'un peut-il me diriger vers des liens ou donner des extraits de code sur la façon de convertir efficacement les résultats de la requête en utilisant mysql-python en cadres de données dans Pandas?
Réponses:
Comme le dit Wes, read_sql d'io / sql le fera, une fois que vous aurez obtenu une connexion à la base de données en utilisant une bibliothèque compatible DBI. Nous pouvons examiner deux courts exemples utilisant les bibliothèques
MySQLdb
etcx_Oracle
pour se connecter à Oracle et MySQL et interroger leurs dictionnaires de données. Voici l'exemple pourcx_Oracle
:Et voici l'exemple équivalent pour
MySQLdb
:la source
Pour les lecteurs récents de cette question: les pandas ont l'avertissement suivant dans leur documentation pour la version 14.0 :
Et:
Cela rend la plupart des réponses obsolètes. Vous devez utiliser
sqlalchemy
:la source
engine.execute("select * FROM mytable")
avec le temps qu'il faut pour s'exécuterpd.read_sql_query('SELECT * FROM mytable', engine)
Pour mémoire, voici un exemple utilisant une base de données sqlite:
la source
index_col='timestamp'
dansframe_query
.Je préfère créer des requêtes avec SQLAlchemy , puis en créer un DataFrame. SQLAlchemy facilite la combinaison de conditions SQL de manière Python si vous avez l'intention de mélanger et de faire correspondre les choses encore et encore.
la source
dialect+driver://user:pwd@host:port/db
Exemple MySQL:
la source
frame_query
est désormais obsolète. Maintenant, utilisez à lapd.read_sql(query, db)
place.La même syntaxe fonctionne pour le serveur Ms SQL utilisant également podbc.
la source
Et voici comment vous vous connectez à PostgreSQL en utilisant le pilote psycopg2 (installez avec «apt-get install python-psycopg2» si vous êtes sur un OS dérivé de Debian Linux).
la source
Pour Sybase, les travaux suivants (avec http://python-sybase.sourceforge.net )
la source
pandas.io.sql.frame_query
est obsolète. Utilisezpandas.read_sql
plutôt.la source
importer le module
relier
Cela fonctionne très bien et en utilisant pandas.io.sql frame_works (avec l'avertissement de dépréciation). La base de données utilisée est l'exemple de base de données du didacticiel mysql.
la source
Cela devrait très bien fonctionner.
la source
Cela m'a aidé à me connecter à AWS MYSQL (RDS) à partir de la fonction lambda basée sur python 3.x et à charger dans un pandas DataFrame
la source
Pour les utilisateurs de Postgres
la source