Seite 1 von 1
Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 19:47
von naheliegend
Hi,
ich habe einen df mit einer column df['text'], die strings beinhaltet.
Code: Alles auswählen
>df['text']
'Das ist text 723453339'
'888453339undein22.1.2020'
'hallo723453339das ist'
'20.2.2020 hallo 723999339'
'beispiel444453339'
'hallo923453339 - d a 30'
Ich bin nur an der 9-stelligen Nummer interessiert. Wie bekomme ich die extrahiert?
Also:
Code: Alles auswählen
>df['nummer']
723453339
888453339
723453339
723999339
444453339
923453339
Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 20:04
von snafu
Ich würde dafür re.findall() benutzen:
Code: Alles auswählen
zahlen = re.findall("\d{9}", text)
print("\n".join(zahlen))
Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 20:11
von __blackjack__
Das ist ein `pandas.DataFrame`, da würde ich die `str`-Operationen verwenden die darauf definiert sind. Und man sollte/muss wahrscheinlich auch sicherstellen, dass 10 und mehrstellige Zahlen *nicht* gefunden werden‽
Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 20:30
von naheliegend
__blackjack__ hat geschrieben: Dienstag 13. Juli 2021, 20:11
Das ist ein `pandas.DataFrame`, da würde ich die `str`-Operationen verwenden die darauf definiert sind. Und man sollte/muss wahrscheinlich auch sicherstellen, dass 10 und mehrstellige Zahlen *nicht* gefunden werden‽
Wie würde das aussehen?
Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 20:57
von snafu
Ich fand re.findall() hierfür geeigneter als die String-Operationen. Man muss die IMHO nicht zwingend nutzen, nur weil sie zur Auswahl stehen.

Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 20:58
von naheliegend
gibt mir die 9-stelligen Nummern.
Re: Pandas - Nummer aus string extrahieren
Verfasst: Dienstag 13. Juli 2021, 21:11
von snafu
Ah, cool. extract() kannte ich bisher nicht. Und das hier ist eindeutig ein Anwendungsfall für reguläre Ausdrücke. Das würde ich nicht Pythons standardmäßigen String-Operationen nachbauen wollen.
Re: Pandas - Nummer aus string extrahieren
Verfasst: Mittwoch 14. Juli 2021, 07:24
von Sirius3
@snafu: der OP arbeitet mit Dataframes. Und Dataframes haben verschiedene Stringoperationen definiert, die dann auf alle Elemente einer Spalte angewendet werden. Da sind auch Operationen mit regulären Ausdrücken dabei.