aus df spezielle Spalten löschen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
torsten_156
User
Beiträge: 43
Registriert: Freitag 5. April 2019, 20:10

Hallo,

ich habe ein DataFrame mit 60 Spalten. Zehn Spalten haben absolut unterschiedliche Bezeichnungen. 50 Spalten haben diese Bezeichnung hier:
EINFELD01, EINFELD02, EINFELD03,...., EINFELD50

Und genau diese Spalten möchte ich nun löschen. Ich würde gern so etwas wie ein wildcard nutzen:

Code: Alles auswählen

df.drop('EINFELD*', axis=1)
Aber das geht so leider nicht. Wie stelle ich das am besten an?

VG
Torsten
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

eventuell so

Code: Alles auswählen

columns = [f'EINFELD{x:02}' for x in range(1, 51)]
df = df.drop(columns, axis=1)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 12984
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@torsten_156: Die Methode will eine Liste mit den Labelnamen haben. Die musst Du halt erstellen. Die stecken in `df.columns` und lassen sich da auch simpel mit einer „list comprehension“ rausfiltern. Ungetestet:

Code: Alles auswählen

df = df.drop(columns=[label for label in df.columns if label.startswith("EINFELD")])
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten