Ich versuche, Daten zu einem DF zu verbinden oder beizutreten, während ich meine Konten durchlaufe.Pandas verschmelzen/verbinden Daten zu einem Datenrahmen während der Schleife
Zuerst stelle ich einen leeren Datenrahmen von allen Monaten indiziert bis:
Empty DataFrame
Columns: []
Index: [2014-09-30, 2014-09-30, 2014-10-31, 2014-10-31, 2014-11-30, 2014-11-30, 2014-12-31, 2015-01-31, 2015-02-28, 2015-03-31]
Next I Schleife Trog alle Konten, die Werte zu den Datenrahmen hinzuzufügen.
for a in accts:
cf = Cashflow.objects.all().filter (id = a.id).order_by ('month').values ('month', 'value')
df2 = read_frame (cf)
df2 = df2.set_index ('month')
df = pd.merge (df2, how = 'left', left_index = True, right_index = True)
Aber ich bin immer doppelte Daten in meiner Ausgabe:
month
2014-09-30 535400 122928.0
2014-09-30 535400 122928.0
2014-10-31 530719 107389.0
2014-10-31 530719 107389.0
2014-11-30 512009 97654.0
2014-11-30 512009 97654.0
2014-12-31 482277 0.0
2015-01-31 474815 0.0
Ich habe verschiedene Lösungen ausprobiert.
Ich kann doppelte Zeilen löschen, aber das ist nur ein Patch auf schlechten Code.
Ist dies die beste Methode? Sollte es ein Join und kein Merge sein?
fallen lassen Ich habe die doppelten Daten nicht gesehen. Ah ... – diogenes
.distinct() löste das Problem. Vielen Dank! – diogenes