Heim >Datenbank >MySQL-Tutorial >Wie konvertiere ich SQL-Abfrageergebnisse effizient in einen Pandas DataFrame?

Wie konvertiere ich SQL-Abfrageergebnisse effizient in einen Pandas DataFrame?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 22:59:14293Durchsuche

How Do I Efficiently Convert SQL Query Results into a Pandas DataFrame?

Konvertieren von SQL-Abfrageergebnissen in Pandas-Datenstrukturen

Problem:

Ein Benutzer benötigt Hilfe beim Konvertieren der Ergebnisse einer SQL-Abfrage in eine Pandas-Datenstruktur. Der Benutzer hat versucht, die Abfrageergebnisse auszudrucken, hat jedoch keine nützlichen Informationen erhalten.

Lösung:

Um SQL-Abfrageergebnisse in Pandas zu konvertieren, können die folgenden Schritte ausgeführt werden:

  1. Stellen Sie mithilfe von create_engine() und connect() von SQLAlchemy eine Verbindung zur Datenbank her. Funktionen.
  2. Führen Sie die SQL-Abfrage mit der Methode „connection.execute()“ aus und speichern Sie die Ergebnisse in einer Variablen (z. B. „resoverall“).
  3. Rufen Sie alle Zeilen aus den Abfrageergebnissen mit „resoverall“ ab. fetchall()-Methode. Dies gibt eine Liste von Tupeln zurück, wobei jedes Tupel eine Zeile darstellt.
  4. Erstellen Sie einen Pandas DataFrame aus der Liste der Tupel. Verwenden Sie dazu DataFrame(resoverall.fetchall()), das automatisch Spaltennamen basierend auf den Tupelindizes zuweist.
  5. Optional können Sie mithilfe von df.columns = resoverall.keys() bestimmte Spaltennamen zuweisen. Dabei gibt resoverall.keys() eine Liste mit Spaltennamen zurück.

Beispiel Code:

from sqlalchemy import create_engine
from pandas import DataFrame

engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING')
connection2 = engine2.connect()
dataid = 1022
resoverall = connection2.execute("SELECT sum(BLABLA) AS BLA, sum(BLABLABLA2) AS BLABLABLA2, sum(SOME_INT) AS SOME_INT, sum(SOME_INT2) AS SOME_INT2, 100*sum(SOME_INT2)/sum(SOME_INT) AS ctr, sum(SOME_INT2)/sum(SOME_INT) AS cpc FROM daily_report_cooked WHERE campaign_id = '%s'", %dataid)
df = DataFrame(resoverall.fetchall())
df.columns = resoverall.keys()

Das obige ist der detaillierte Inhalt vonWie konvertiere ich SQL-Abfrageergebnisse effizient in einen Pandas DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn