2016-09-12 4 views
2

Ich versuche, Strings zu finden, die entweder "Internet", "Programm", "Socket-Programmierung" im Pandas-Dataframe enthalten.python pandas.Series.str.contains Wörter mit Leerzeichen

df.col_name.str.contains(" internet | program | socket programming ", case=False) 

Ist das der richtige Weg? oder Muss ich Raum mit \ und rohen Zeichenfolge entkommen?

+0

es mir richtig aussieht ... – MaxU

+0

Haben Sie es versuchen ? – ayhan

+0

@ayhan ja ich versuchte, aber ohne rohe Zeichenfolge Escape-Taste (\) funktioniert noch, so wollte ich überprüfen. – Aaron

Antwort

4

Hier ist eine kleine Demo:

In [250]: df 
Out[250]: 
             txt 
0        Internet 
1 There is no Internet in this apartment 
2        Program2 
3 I am learning socket programming too 

In [251]: df.txt.str.contains(" internet | program | socket programming ", case=False) 
Out[251]: 
0 False 
1  True 
2 False 
3  True 
Name: txt, dtype: bool 

Wenn Sie auch die erste Zeile auf "match" wollen: Internet:

In [252]: df.txt.str.contains(r"\b(?:internet|program|socket\s+programming)\b", case=False) 
Out[252]: 
0  True 
1  True 
2 False 
3  True 
Name: txt, dtype: bool 
Verwandte Themen