pandasフィルタ特定の要素を含む行または列str.contains()関数

7631 ワード

データの処理中に特定の文字列を検索する必要があるという問題が発生しました.ついでに、strでフィルタする必要がある列を文字形式に変換し、contains()関数でフィルタします.次の例を見てDataFrameを作成します.
df = pd.DataFrame({'A':['aasd','sb','adg','sfh','rh'],'B':np.arange(5)})
print(df)

out:
      A  B
0  aasd  0
1    sb  1
2   adg  2
3   sfh  3
4    rh  4

次に、A列にアルファベットrが含まれている行をフィルタしたいので、str.contains()関数を利用して、strは文字列処理方式を表しています.
print(df['A'].str.contains('r'))

out:
0    False
1    False
2    False
3    False
4     True
Name: A, dtype: bool

contains()はブール型の数値を返し,その後は単純なブール演算であることがわかる.
print(df[df['A'].str.contains('r')])

out:
    A  B
4  rh  4

合計コード
df = pd.DataFrame({'A':['aasd','sb','adg','sfh','rh'],'B':np.arange(5)})
print(df)
print('————————')
print(df['A'].str.contains('r'))
print('————————')
print(df[df['A'].str.contains('r')])

out:
      A  B
0  aasd  0
1    sb  1
2   adg  2
3   sfh  3
4    rh  4
————————
0    False
1    False
2    False
3    False
4     True
Name: A, dtype: bool
————————
    A  B
4  rh  4