ich folgende Python-Code haben (ich will das erste Spiel einer bestimmten Anzahl in einem Textfeld):Anwenden re.search Funktion Spalte in Python
import numpy as np
import pandas
data = {'A': [1, 2, 3], 'B': ['bla 4044 bla', 'bla 5022 bla', 'bla 6045 bla']}
df = pandas.DataFrame(data)
def fun_subjectnr(column):
column = str(column)
subjectnr = re.search(r"(\b[4][0-1][0-9][0-9]\b)",column)
subjectnr1 = re.search(r"(\b[2-3|6-8][0-9][0-9][0-5]\b)",column)
subjectnr = np.where(subjectnr == "" and subjectnr1 != "", subjectnr1,
subjectnr)
return subjectnr1
df['C'] = df['B'].apply(fun_subjectnr)
gewünschte Ausgabe:
A B C
1 bla 4044 bla 4044
2 bla 5022 bla None
3 bla 6045 bla 6045
Es scheint nicht zu funktionieren. Wenn ich dem Regex-Code eine [0] hinzufüge, ergibt sich ein Fehler ... (subjecnr = re.search (r "(\ b [4] [0-1] [0-9] [0-9] \ b) ", Spalte) [0])
Wer weiß, was zu tun ist? Danke im Voraus!
Können Sie erklären, wie Sie diese Ausgabe erhalten? Sie sollten 'Series.str.findall' verwenden. –
Ich habe es versucht und es hat funktioniert, aber ich will nicht alle Spiele, nur das erste Spiel ... –
Okay, dann 'Series.str.extract'. Meine Frage ist, was genau versuchst du zu tun? Warum ist das zweite Ergebnis None? –