Pandasにて特定の文字列を含む行を抽出する方法について
コード
タイタニックのデータセットを利用
PassengerId | Survived | Pclass | Name | Sex | Age |
---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Th… | female | 38.0 |
3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.0 |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35.0 |
5 | 0 | 3 | Allen, Mr. William Henry | male | 35.0 |
“Name”に「Mrs.」を含む行を抽出する。
import pandas as pd
TRAIN = pd.read_csv('train.csv')
TRAIN [TRAIN ['Name'].str.contains('Mrs.')]
PassengerId | Survived | Pclass | Name | Sex | Age |
---|---|---|---|---|---|
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Th… | female | 38.0 |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35.0 |
9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27.0 |
10 | 1 | 2 | Nasser, Mrs. Nicholas (Adele Achem) | female | 14.0 |
16 | 1 | 2 | Hewlett, Mrs. (Mary D Kingcome) | female | 55.0 |
名前にMrs.を含む行だけが抽出できました。
解説
「TRAIN [‘Name’].str」Pythonの文字列のメソッドを適用
「.contains(‘Mrs.’)」で対象の文字を含んでいるかT/Fにて出力する
“含む”ではなく完全一致の場合
#性別でfemaleのみを抽出
TRAIN [TRAIN ['Sex']=='female']