Pandas Read_SQL: Um funktionale Daten zu verwalten und zu analysieren, können Datenexperten eine Vielzahl von Tools verwenden. Dazu gehören auch SQL oder Panda.
Sie werden oft als zwei alternative Optionen dargestellt (entweder das eine oder das andere), ergänzen sich aber in Wirklichkeit sehr gut. Die Python-Bibliothek ist in der Lage, die Structured Query Language über die Pandas Read_SQL-Funktionen zu lesen. Lass uns diese Funktionen näher kennenlernen.
Was ist Pandas Read_SQL ?
Pandas Read_SQL ist eine Funktion der Python-Bibliothek, mit der du die Ergebnisse einer SQL-Abfrage direkt in den Panda-Dataframe abrufen kannst.
⚠️Aber Vorsicht: Es gibt zwei Methoden, um SQL zu lesen:
- pandas.read_sql_query: Dies ist die ursprüngliche Formel für die Verwendung von SQL-Abfragen in Pandas.
- pandas.read_sql: Dies ist eine Vereinfachung der ersten Option, da sie read_sql_query und read_sql_table kombiniert
- Letztere ermöglicht es jedoch, eine ganze SQL-Tabelle in Pandas zu lesen. Mit dieser Funktion ist es also möglich, sowohl Abfragen als auch Tabellen zu lesen.
Wie verwende ich die Pandas Read_SQL-Abfrage?
Die Voraussetzungen
Um die Pandas Read_SQL-Abfrage effektiv nutzen zu können, müssen einige Python-Pakete installiert werden, wie z.B. :
- SQLAlchemy: Dieses Paket ermöglicht es, mit SQL-Datenbanken direkt im Python-Code zu interagieren. Es ist nicht zwingend erforderlich, aber es erleichtert den Workflow.
- Ein Adapter: Egal, ob du PostgreSQL, MySQL, Oracle oder einen anderen Dialekt verwendest, du brauchst einen Adapter für Python, damit Pandas und SQL sich ergänzen können.
- Ein Python-Paketmanager: Wie über pip.
Nicht zu vergessen ist der Zugriff auf eine SQL-Datenbank (egal ob aus der Ferne oder auf einem lokalen Rechner).
Die Verwendung von Pandas Read_SQL
Sobald alle Pakete installiert sind, musst du eine Verbindung zu deiner Datenbankquelle öffnen. Genau aus diesem Grund ist SQLAlchemy nützlich, da es eine Verbindung herstellen kann.
Über diese Verbindung kannst du dann die Ergebnisse einer grundlegenden SQL-Abfrage in Pandas abrufen. An dieser Stelle kommt die Pandas read_SQL-Abfrage ins Spiel.
Diese Abfrage sieht folgendermaßen aus:
df = pandas.read_sql_query(“’SELECT * FROM tabellenname“, con=cnx).
Nun müssen die verschiedenen Parameter dieses Code-Schnipsels angegeben werden:
- df: Dies ist der Pandas-Dataframe, in dem die Daten der Tabelle gespeichert werden.
- SELECT * FROM tabellenname: Hier wird angegeben, welche Daten in der Tabelle ausgewählt werden sollen.
- con=cnx: Dies ist die Verbindung zwischen Pandas und SQL.
Neben dem Lesen von Tabellen ist es auch möglich, SQL-Ansichten zu lesen. Dazu schreibst du einfach die folgende Syntax:
df = pandas.read_sql_query(“’SELECT * FROM my_view“‘, con=cnx)).
💡Gut zu wissen: Dies ist ein grundlegendes Modell für die Verwendung von Pandas Read_SQL. Es ist auch möglich, eine verallgemeinerte Abfragekette zu erstellen, um verschiedene Bereiche abzurufen. Und das, während du deine Abfragen und deren Variablen anpasst.
Die Kontrolle über Datenmengen
Wenn Pandas.Read_SQL die Möglichkeit bietet, mehrere Datenbereiche zu extrahieren, solltest du darauf achten, welche Datenmengen du eingeben musst. Dies gilt insbesondere für sehr große Datenbanken. Wenn du nämlich SQL-Datenbanken mit Pandas lesen willst, solltest du wissen, dass die Python-Bibliothek nicht nur die Datenframes, sondern auch die Verarbeitung der Ergebnisse von SQL-Abfragen speichert. Daher muss genügend Speicherplatz zur Verfügung stehen, da es sonst zu vielen Fehlern kommen kann.
Um dies zu verhindern, kann der in Pandas integrierte Chunksize-Parameter verwendet werden.
Dieser Parameter kontrolliert die Menge der importierten Daten. Wenn die Grenze nahe ist, ist es besser, die SQL-Daten in mehreren Schritten zu extrahieren.
Um diese Funktion zu nutzen, tippe einfach diese Abfrage ein:
df = pandas.read_sql_query(“’SELECT * FROM tabellenname“, con=cnx, chunksize=n).
Hier bezieht sich n auf die Anzahl der Zeilen, die du in den Dataframe aufnehmen möchtest.
💡 Auch interessant:
SQL Datei öffnen |
SQL vs. NOSQL |
noSQL nicht relationale Datenbanken |
Alles über SQL |
Insert INTO SQL |
SQL Index – Wozu dient er? |
Wo liegen die Grenzen von Pandas Read-SQL?
Obwohl es mit Pandas Read_SQL einfach ist, SQL-Datenbanken aus der Python-Bibliothek zu extrahieren, sollte man sich auch seiner Grenzen bewusst sein.
Diese Abfrage benötigt sehr viel Speicherplatz, da der Datenrahmen gespeichert und die Ergebnisse der SQL-Abfrage verarbeitet werden müssen. Es sollte ausreichend Speicherplatz vorhanden sein.
Abgesehen davon, dass diese Funktion bei großen Datenimporten zu Fehlern führen kann, ist sie auch oft der Grund für langsame Ladezeiten. Dies gilt selbst für kleine Datenmengen.
Wenn du die Ladezeit beschleunigen willst, ist Pandas Read-SQL definitiv nicht die beste Option, um deine SQL-Datenbanken zu extrahieren.
Lerne SQL mit DataScientest!
Ob Pandas oder SQL-Abfragen, sie sind unverzichtbare Werkzeuge, um Datenbanken zu verwalten und zu analysieren. Um DBMS perfekt zu beherrschen, ist es wichtig, sich in beiden Bereichen weiterzubilden.
Glücklicherweise bietet dir DataScientest umfassende Schulungen rund um Daten an. Sei es durch Bootcamps, Weiterbildung oder duale Ausbildung, du wirst schnell lernen, diese Werkzeuge zu benutzen und nach Abschluss des Kurses sofort operationnel sein.