Es soll der String vor und nach bestimmten zeichen ausgewählt werden. Exemplarisch steht in einer Spalte:
wert: 2, beobachtung: 1,
Alles nach der Zeichenkette "wert:" und vor dem ersten "," soll ausgewählt werden, d.h. "2". Ist mir nicht ganz klar, wie ich das mit str. extract anstelle.
str.extract
- __blackjack__
- User
- Beiträge: 13928
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder dazu schreiben das es gar nicht um `str.extract()` geht, sondern um `pandas.Series.str.extract()`.
Das will einen regulären Ausdruck. Was wurde versucht und wie weicht das Ergebnis von den Erwartungen ab? Die API-Dokumentation zur Methode gelesen? Die Dokumentation dazu im „User Guide“? Beides hat auch Beispiele.
Das will einen regulären Ausdruck. Was wurde versucht und wie weicht das Ergebnis von den Erwartungen ab? Die API-Dokumentation zur Methode gelesen? Die Dokumentation dazu im „User Guide“? Beides hat auch Beispiele.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
Zunächst bitte ich um Entschuldigung für meine schlampige Beschreibung. Richtig, es handelt sich um 'str.extract()' aus Pandas.
Ich glaube es ist erstmal sinnvoll, die richtige regex zu finden und das ganze dann auf den DF zu übertragen:
Jetzt müsste ich die regex für m relativ umständlich erweitern, um alles bis zum ' " ' zu erfassen. Geht das einfacher, d.h. etwa sinngemäß wie 'alles bis'
Ich glaube es ist erstmal sinnvoll, die richtige regex zu finden und das ganze dann auf den DF zu übertragen:
Code: Alles auswählen
import re
m = re.search(r'(?<=user:")\w+-+\w', 'user:"abc-1d2-12",obs:"1"')
n = re.search(r'(?<=obs:")\w+', 'user:"abc-1d2-12",obs:"1"')
print(m.group(0),n.group(0))
- __blackjack__
- User
- Beiträge: 13928
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Da sind ja gar keine Gruppen definiert. Wenn Du alles zwischen den " haben willst, dann schreib dafür jeweils eine Gruppe nach dem öffnenden " die alles bis auf das schliessende " matcht:
Code: Alles auswählen
In [108]: m = re.search('user:"([^"]*)",obs:"([^"]*)"', 'user:"abc-1d2-12",obs:"1"')
In [109]: m.groups()
Out[109]: ('abc-1d2-12', '1')
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware