DataFrame では任意のデータを容易に抽出することができます。
キーでのデータ抽出
まず1次元のリストが入った辞書型データよりデータフレームを作成します。
このデータに対して、キーを指定することにより任意の列のデータを取得することができます。
[コード]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import pandas as pd # 身長・体重・性別のデータフレームを作成 tbl = pd.DataFrame({ 'weight': [80.0, 70.4, 65.5, 45.9, 51.2, 72.5], 'height': [170, 180, 155, 143, 154, 160], 'gender': ['f', 'm', 'm', 'f', 'f', 'm'] }) # 体重の一覧を表示 print('体重の一覧') print(tbl['weight']) print() # 体重と身長の一覧を表示 print('体重と身長の一覧') print(tbl[['weight', 'height']])
実行結果は下記のとおりです。
[実行結果]
体重の一覧
0 80.0
1 70.4
2 65.5
3 45.9
4 51.2
5 72.5
Name: weight, dtype: float64
体重と身長の一覧
weight height
0 80.0 170
1 70.4 180
2 65.5 155
3 45.9 143
4 51.2 154
5 72.5 160
スライスでのデータ抽出
任意の行を抽出したい場合は、Pythonの標準型であるリストを同じようにスライスを使うことができます。
[コード]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import pandas as pd # 身長・体重・性別のデータフレームを作成 tbl = pd.DataFrame({ 'weight': [80.0, 70.4, 65.5, 45.9, 51.2, 72.5], 'height': [170, 180, 155, 143, 154, 160], 'gender': ['f', 'm', 'm', 'f', 'f', 'm'] }) # (0から数えて)2から3つ目のデータを表示 print('tbl[2:4]\n', tbl[2:4]) print() # (0から数えて)3つ目以降のデータを表示 print('tbl[3s:]\n', tbl[3:])
実行結果は下記のとおりです。
[実行結果]
weight height gender
2 65.5 155 m
3 45.9 143 f
weight height gender
3 45.9 143 f
4 51.2 154 f
5 72.5 160 m
条件でのデータ抽出
条件を指定することにより、条件に合致したデータを抽出することができます。
[コード]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import pandas as pd # 身長・体重・性別のデータフレームを作成 tbl = pd.DataFrame({ 'weight': [80.0, 70.4, 65.5, 45.9, 51.2, 72.5], 'height': [170, 180, 155, 143, 154, 160], 'gender': ['f', 'm', 'm', 'f', 'f', 'm'] }) print('身長が160以上のデータを表示') print(tbl[tbl.height >= 160]) print() print('性別が m のデータを表示') print(tbl[tbl.gender == 'm'])
実行結果は下記のとおりです。
[実行結果]
身長が160以上のデータを表示
weight height gender
0 80.0 170 f
1 70.4 180 m
5 72.5 160 m
性別が m のデータを表示
weight height gender
1 70.4 180 m
2 65.5 155 m
5 72.5 160 m