概要
今回はある条件のデータを抽出し確認する方法を紹介します。
特定の列のみ抽出する
次の例では全体からname
列のみを抽出します。 1列を選択した場合、返り値のデータ型はSeries型となります
df = pd.DataFrame({
'id': [1, 2, 3, 4],
'name': ['taro', 'takuya', 'erika', 'hanako'],
'age': [20, 25, 18, 25],
'sex': ['male', 'male', 'female', 'female'],
'height': [170, 180, 160, 165]
})
df['name']
0 taro
1 takuya
2 erika
3 hanako
type(df)
# pandas.core.frame.DataFrame
複数の列を抽出する
続いて複数の列を指定して、データを抽出します。次の例ではnameとsex
を選択します。
df[['name', 'sex']]
name sex
0 taro male
1 takuya male
2 erika female
3 hanako female
行を位置番号を指定して抽出
続いてデータから特定の行のみを位置番号を用いて取得します。左記を行うにはiloc
を使用します。次の例では行の1行目のみ抽出しています。
df.iloc[0]
id 1
name taro
age 20
sex male
height 170
Name: 0, dtype: object
続いて、1行目と3行目を抽出します。
df.iloc[[0, 2]]
id name age sex height
0 1 taro 20 male 170
2 3 erika 18 female 160
続いて、インデックスの始点と終点を指定して、データを抽出します。次の例では1行目から3行目を抽出します
df.iloc[0:3]
id name age sex height
0 1 taro 20 male 170
1 2 takuya 25 male 180
2 3 erika 18 female 160
比較絵演算子を利用してデータを抽出
比較演算子==、>=、<=、>、<
を利用してデータを抽出します。次の例ではageが20歳以上でデータを抽出します。
df[df['age'] >= 20]
id name age sex height
0 1 taro 20 male 170
1 2 takuya 25 male 180
3 4 hanako 25 female 165
&、|、~
を利用して複数の条件を指定することもできます。次の例ではageが20歳以上かつsexがmaleのデータを抽出します。
df[(df['age'] >= 20) & (df['sex'] == 'male')]
id name age sex height
0 1 taro 20 male 170
1 2 takuya 25 male 180