Pandas Duplikate

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PyN
User
Beiträge: 12
Registriert: Donnerstag 12. Dezember 2019, 16:09

Hallo zusammen,

ich möchte gerne den Wert von Duplikaten in meinem Dataframe anpassen.

Der Dataframe sieht folgendermaßen aus:

date | value
2002-02-28 | 3
2002-02-28 | 3
2002-02-28 | 3

Der Zieldataframe sieht folgendermaßen aus:

date | value
2001-12-31 | 3
2002-01-31 | 3
2002-02-28 | 3

Hintergrund ist folgender: Ich habe Daten auf Quartalsebene und ich möchte diese Daten jedem Monat innerhalb diesem Quartal zuweisen. Dazu habe ich die rows in meinem Dataframe dreimal kopiert.

Meine Idee war eine Spalte einzufügen:

Code: Alles auswählen

df['is_duplicate']=df.duplicated()
Damit bekomme ich für das erste Duplicate den Wert False. Basierend auf dieser Spalte würde ich das 'date' ändern:

Code: Alles auswählen

df['date']=df.where(df['is_duplicate']==False, df['date']- timedelta(days=30), axis=1)
Dies würde ich nochmal durchführen und danach 60 Tage abziehen.

Leider führt das nicht zu dem gewünschten Ergebnis sondern führt dazu, dass zwei der drei Zeilen mit NULL Values gekennzeichnet werden und das date sich gar nicht ändert.

Kann mir jemand dabei weiterhelfen? Wäre echt sehr dankbar dafür.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

als erstes wäre ein komplettes und funktionierendes Beispiel ganz hilfreich.
Warum willst Du die Daten drei mal kopieren, wenn Du sie gar nicht kopiert haben willst, sondern verändert? Der direkte Weg wäre doch, erstmal einen Dataframe mit allen gewünschten Daten zu erzeugen und dann die fehlenden Werte zu ergänzen.
Antworten