Seite 1 von 1

String split in Pandas dataframe

Verfasst: Freitag 20. Mai 2022, 14:59
von st_baum
Ich möchte nur die ersten Zeichen vor bestimmten Zeichen eines Pandas df extrahieren. Die Schwierigkeit besteht darin, dass es eine lange Liste an Zeichen ist, vor denen ich abschneiden möchte.

Ich habe das Problem lösen können, allerdings nur mit einem Loop:

Code: Alles auswählen

import pandas as pd
d = {'names': ['hans','hans.peter','hans_peter']}
df = pd.DataFrame(d)
liste = ['.','_']

for i in liste:
    df.names = df.names.str.split(pat = i ,n = -1).str[0]
Geht das auch eleganter, d.h. ohne Loop?

Re: String split in Pandas dataframe

Verfasst: Freitag 20. Mai 2022, 16:00
von sparrow
"i" ist ein sehr schlechter Name für ein Zeichen, weil man dahinter eine Zählvariable vermutet.
str.split() erwartet als pat eine Zeichenkette - oder einen regulären Ausdruck. Der reguläre Ausdruck wäre in diesem Fall wohl eleganter.