Seite 1 von 1

Problem beim löschen von Spalten in Dataframes

Verfasst: Montag 15. Oktober 2018, 20:48
von SautaRoc
Hallo,

ich habe über pd.merge eine Reihe von Dataframes mit gleichen Spalten zusammengefasst. Das klappt auch wie gewünscht. Wenn man merge nutzt werden werden im Zieldataframe die Spalten immer alternierend bezeichnet:


Spalte1 Spalte 2 Spalte3 Spalte1_x Spalte2_x Spalte3_x Spalte1_y Spalte2_y Spalte3_y.... dann geht es wieder von vorne los Spalte1 Spalte2 usw.
jetzt wollte ich aus diesem Dataframe einzelne Spalten löschen. Über die Spaltenbezeichnung geht es nicht, da sich die Namen wiederholen, ich aber nicht alle doppelten löschen will. Also habe ich es über den Index versucht:

Code: Alles auswählen

merged.drop(merged.columns[[0,2,3]], axis=1, inplace=True)

aber anstatt nur die drei indexierten Spalten zu löschen, wurden auch deren Namensbrüder wiederum gelöscht. Das verstehe ich nicht, der Index sollte das doch exakt definieren. Ich komme hier einfach nicht weiter....

für Tipps wäre ich sehr dankbar.

Re: Problem beim löschen von Spalten in Dataframes

Verfasst: Dienstag 16. Oktober 2018, 15:02
von ThomasL
schau dir mal an was "merged.columns[[0,2,3]]" dir liefert.
Das sollte, gemäß Beispiel, "Index(['Spalte1', 'Spalte3', 'Spalte2_x'], dtype='object')" sein.
Wenn du jetzt mehrere Spalten mit diesen Headern hast, werden die alle gelöscht.
Du kannst bei .merge einen Parameter suffixes=() angeben, default ist suffixes=('_x', '_y'), daher wiederholen sich deine Spaltennamen wieder
Versuch mal suffixes=('_0', '_1','_2', '_3''_4', '_5''_6', '_7''_8', '_9') oder so viele wie du benötigst.