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)