Die Dokumentation für Pandas enthält zahlreiche Beispiele für bewährte Methoden für die Arbeit mit Daten, die in verschiedenen Formaten gespeichert sind.
Ich kann jedoch keine guten Beispiele für die Arbeit mit Datenbanken wie beispielsweise MySQL finden.
Kann mich jemand auf Links verweisen oder einige Codefragmente geben, wie Abfrageergebnisse mit mysql-python effizient in Datenrahmen in Pandas konvertiert werden können ?
Antworten:
Wie Wes sagt, wird read / sql von io / sql dies tun, sobald Sie eine Datenbankverbindung mit einer DBI-kompatiblen Bibliothek hergestellt haben. Wir können uns zwei kurze Beispiele ansehen, in denen die Bibliotheken
MySQLdb
und verwendet werdencx_Oracle
, um eine Verbindung zu Oracle und MySQL herzustellen und deren Datenwörterbücher abzufragen. Hier ist das Beispiel fürcx_Oracle
:Und hier ist das entsprechende Beispiel für
MySQLdb
:quelle
Für neuere Leser dieser Frage: Pandas haben die folgende Warnung in ihren Dokumenten für Version 14.0 :
Und:
Dies macht viele der Antworten hier veraltet. Sie sollten verwenden
sqlalchemy
:quelle
engine.execute("select * FROM mytable")
mit der Zeit zu vergleichen, die für die Ausführung benötigt wirdpd.read_sql_query('SELECT * FROM mytable', engine)
Hier ist ein Beispiel für die Verwendung einer SQLite-Datenbank:
quelle
index_col='timestamp'
in angebenframe_query
.Ich ziehe es vor, Abfragen mit SQLAlchemy zu erstellen und dann einen DataFrame daraus zu erstellen . SQLAlchemy erleichtert das Python- Kombinieren von SQL- Bedingungen, wenn Sie beabsichtigen, Dinge immer wieder zu mischen und anzupassen.
quelle
dialect+driver://user:pwd@host:port/db
MySQL-Beispiel:
quelle
frame_query
ist jetzt veraltet. Verwenden Sie jetztpd.read_sql(query, db)
stattdessen.Die gleiche Syntax funktioniert auch für MS SQL Server, die podbc verwenden.
quelle
Und so stellen Sie mit dem psycopg2-Treiber eine Verbindung zu PostgreSQL her (installieren Sie mit "apt-get install python-psycopg2", wenn Sie ein von Debian Linux abgeleitetes Betriebssystem verwenden).
quelle
Für Sybase funktioniert Folgendes (mit http://python-sybase.sourceforge.net )
quelle
pandas.io.sql.frame_query
ist veraltet. Verwenden Siepandas.read_sql
stattdessen.quelle
Importieren Sie das Modul
verbinden
Das funktioniert einwandfrei und mit pandas.io.sql frame_works (mit der Verfallswarnung). Die verwendete Datenbank ist die Beispieldatenbank aus dem MySQL-Tutorial.
quelle
Dies sollte gut funktionieren.
quelle
Dies hat mir geholfen, eine Verbindung zu AWS MYSQL (RDS) über eine auf Python 3.x basierende Lambda-Funktion herzustellen und in einen Pandas-DataFrame zu laden
quelle
Für Postgres-Benutzer
quelle