2016-09-12 17 views
2

パンダのデータフレームに「インターネット」、「プログラム」、「ソケットプログラミング」のいずれかを含む文字列を検索しようとしています。python pandas.Series.strスペースを含む単語

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

これは正しい方法ですか?または\と生の文字列を使用してスペースをエスケープする必要がありますか?ここで

+0

を、それは私には正しいよう... – MaxU

+0

あなたはそれを試してみました? – ayhan

+0

@ayhanはい生の文字列エスケープキー(\)を使わずに試しましたが、まだ動作しているので検証したかったのです。 – Aaron

答えて

4

小さなデモです:

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 

あなたも「一致」に最初の行したい場合: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 
関連する問題