Ich mache eine Menge sql zu Pandas und ich habe in der folgenden Herausforderung eingelaufen.SQL-Werte zum Aktualisieren Pandas Dataframe
ich einen Datenrahmen haben, sieht das wie
UserID, AccountNo, AccountName
123, 12345, 'Some name'
...
Was ich für jede Kontonummer tun möchte, so würde Ich mag eine Spalte Gesamtumsatz genannt hinzuzufügen, die aus einer MySQL-Datenbank erhalten wird, som ich denke an so etwas wie,
for accountno in df['AccountNo']:
df1 = pd.read_sql(('select sum(VBRK_NETWR) as sum from sapdata2016.orders where VBAK_BSARK="ZEDI" and VBRK_KUNAG = %s;') % accountno, conn)
Und ich brauche die den Datenrahmen, so dass
UserID, AccountNo, AccountName, TotalRevenue
123, 12345, 'Some name', df1
...
erweitern 210
Der Code, den ich bisher (und nicht funktioniert, wirft einen getitem Fehler)
sets3 = []
i=0
for accountno in df5['kna1_kunnr']:
df1 = pd.read_sql(('select sum(VBRK_NETWR) as sum from sapdata2016.orders where VBAK_BSARK="ZEDI" and VBRK_KUNAG = %s;') % accountno, conn)
df2 = pd.DataFrame([(df5['userid'][i], df5['kna1_kunnr'][i], accountno, df5['kna1_name1'][i], df1['sum'][0])], columns=['User ID', 'AccountNo', 'tjeck', 'AccountName', 'Revenue'])
sets3.append(df2)
i += 1
df6 = pd.concat(sets3)
Diese Idee/code ist nicht schön, und ich frage mich, ob es eine bessere/schönere Art und Weise, es zu tun , irgendwelche Ideen?
Die Daten stammen aus vielen verschiedenen Datenbanken und Tabellen, es ist sehr viel Schnitt und Paste Verfahren, die ich mache. –
dann denke ich, dass Sie alle Ihre Tabellen in einzelne Datenrahmen lesen sollten, verbinden Sie sie auf entsprechenden Schlüsseln zusammen, und führen Sie dann Ihre Zusammenfassung. Zeige uns 5 - 10 Zeilen aus einer repräsentativen Auswahl deiner Tabellen –
@PaulH - oder umgekehrt, schreibe alle Daten in die DB und starte Abfragen in MySQL – Parfait