pandas入門#

クイズ#

Q1: データの読み込み#

pokemonDataは,ポケットモンスターシリーズに登場するポケモンの能力値をまとめたデータセットである. コチラのURLからCSVファイルをダウンロードし,その内容をpandasデータフレームに変換して変数pokemon_dfに代入しなさい. さらに,pokemon_dfの中身を確認しなさい.

import pandas as pd

pokemon_df = pd.read_table(
    'https://raw.githubusercontent.com/lgreski/pokemonData/refs/heads/master/Pokemon.csv', sep=',', na_values=[' '])

Q2: データの確認#

データフレームpokemon_dfで取り扱われているポケモンの数(行数)および列数を調べなさい.

pokemon_df.shape

Q3: HP, 攻撃力, 防御力#

データフレームpokemon_dfで扱われているポケモンのHP,攻撃力(Attack),防御力(Defense)の平均値を調べなさい.

pokemon_df[['HP', 'Attack', 'Defense']].describe()

# 以下のほうが分かりやすい
# target_columns = ['HP', 'Attack', 'Defense']
# pokemon_df[target_columns].describe()

Q4: 第9世代#

データフレームpokemon_dfの中で,第9世代(スカーレット・ヴァイオレット)のポケモンの情報を表示しなさい.

pokemon_df[pokemon_df.Generation == 9]

Q5: ゴーストタイプ#

データフレームpokemon_dfの中で「ゴースト(Ghost)」タイプのポケモンの情報を表示しなさい.

pokemon_df[(pokemon_df.Type1 == 'Ghost') | (pokemon_df.Type2 == 'Ghost')]

# 以下でもOK
# pokemon_df.query('Type1 == "Ghost" or Type2 == "Ghost"')

Q6: 偏差値#

データフレームpokemon_dfの情報によると,Total値の平均値は443.1,標準偏差は121.2である. この値を用いてデータフレームpokemon_df中の各ポケモンのTotal値に関する偏差値を算出しなさい. また,計算した偏差値をpokemon_dfの列Total_Z_scoreに格納しなさい.

なお,\(x\)の平均値を\(\mu\),標準偏差を\(\sigma\)としたとき,\(x\)の偏差値\(z\)は以下の式で計算できる: $\( z = \frac{x - \mu}{\sigma} \times 10 + 50 \)$

pokemon_df['Total_Z_score'] = ((pokemon_df.Total - 443.1) / 121.2) * 10 + 50

Q7: データフレームの保存#

Totalの偏差値に関する列を追加したデータフレームpokemon_dfをTSVファイルとして保存しなさい. また,保存したTSVファイルをテキストエディタやExcelなどを用いて確認しなさい. なお,TSVファイル名はpokemon.tsvとし,見出し(列名)をファイル内に含めるようにすること.

pokemon_df.to_csv('pokemon.tsv', sep='\t', header=True)