2017-09-25 2 views
1

日本語の複数の列を持つpandasデータフレームがあります。 特定の日本語文字を含む行を返す検索を実行したいとします。シリーズ内のある特定の日本語文字に一致する行を返します

ex。

df[df.col1.str.contains(find_str)] or df[df.col1 == find_str] 

どのように私はこれについて行くだろう:

find_str = 'バッグ' 

私はちょうどのようなものを使用することはできません知っていますか?エンコーディングと同じように使用する必要がありますか?

          name 
0             ヴァラ 
1    ALEXANDER WANG(アレキサンダーワン) クラッチバッグ パイソン【中古】 
2             ミューズトゥ 
3             ミューズトゥ 
4            ローディーロック 
5           バブーシュカクリスタルGG 

私のような単純なものを実行したい:

df[df.name.str.contains('ゥ')] 

行2と3を返す必要がありますが、代わりに私が働いて私にとっては、空の結果

+0

'df [(df.col1.str.contains(find_str))]が必要です。 (df.col1 == find_str)] ' – jezrael

+0

あなたはpython2または3を使っていますか? –

+0

私はPython 2.7を使用しています – user7374610

答えて

0

を得る:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import pandas as pd 

df = pd.read_csv('file.csv', encoding='utf-8') 
find_str = u'バッグ' 

m = df['name'].str.contains(find_str) 
print (m) 
0 False 
1  True 
2 False 
3 False 
4 False 
5 False 
Name: name, dtype: bool 
+0

このようなクエリを実行すると空のデータフレームになります – user7374610

+0

サンプルを追加できますか? 4,5行 – jezrael

+0

私は答えを編集するが、それは私にとってはうまくいくようだ。 – jezrael

関連する問題