目次
ポケモンのデータで学ぶPython
Python(パイソン)というプログラミング言語を、ポケモンという誰もが知っているコンテンツで学んでいく企画です
今回はPythonのDataFrameから自由自在にデータを取り出す方法について、一問一答形式で学んでいきます
- 特定の列を取り出す
- 指定した範囲のデータを取り出す
- 条件を付けてデータを取り出す
今回利用するデータについてや、Pythonのセットアップは下記記事をご覧ください



事前準備
Pandasを事前にインポートしておきます
import pandas as pd
ポケモンのデータ(Excel:105 KB)をダウンロードし、Pythonで読み取ってください
# Pokemon_1のシートを変数(df)に格納する
df = pd.read_excel('pokemon_data.xlsx', sheet_name='Pokemon_1')

特定の列を取り出す
名前のカラム(列)だけを取り出してください
df['名前']
df.名前

カラム名を取得するには[ ]角括弧を使うか、カンマで指定します

名前とIDのカラム(列)を取り出してください
df[['名前','id']]

複数のカラム名を取得するには[ ]角括弧を重ねる必要があります
指定した範囲のデータを取り出す
データを上から100件取り出してください
df.head(100)
df.iloc[:100,:]

上からデータを取得するにはheadを用いるのが簡単です
また下からデータを取得するにはtailを利用しましょう

上から201から205までのデータを取り出してください
df.iloc[200:205,:]
ilocを利用することで、自由自在に行・列を指定してデータを取り出すことができます
,カンマを挟んで「行 , 列」と指定します
:コロンを挟んで「始め : 終わり」を指定します(:コロンだけは全てを意味します)

上から201から205までの行で、名前とタイプ1.2を取り出してください
df.iloc[200:205,1:4]

テーブルの途中部分を抜き出しています
[ 行始め : 行終わり , 列始め : 列終わり ] と記載をします条件を付けてデータを取り出す
タイプ1が「みず」のポケモンのみ取り出してください
df.query('タイプ1=="みず"')
df[df['タイプ1']=='みず']

条件を付けてデータを取り出すにはqueryを利用します
()括弧の中に条件式を記載することで、それに当てはまるデータのみ取得できます
また変数を重ねる方法でも条件指定ができます

タイプ1が「みず」でタイプ2が「こおり」のポケモンを取り出してください
df.query('タイプ1=="みず"&タイプ2=="こおり"')

2つ以上の条件を付ける場合は、queryの条件式に&を組み合わせます
タイプ1かタイプ2が「みず」のポケモンを取り出してください
df.query('タイプ1=="みず"|タイプ2=="みず"')

高さが1(m)以下のポケモンを取り出してください
df.query('高さ<=1')

数値データに関してもqueryを利用して条件を付けてデータを抽出することができます
まとめ
- 特定の列を取り出す
- 指定した範囲のデータを取り出す
- 条件を付けてデータを取り出す
今回はポケモンのデータを利用して、DataFrameからデータを取り出す方法についてご紹介してきました
Pythonで分析を実施するときの最初の工程になるので、自由に操作できるようにしてください

