目次
ポケモンのデータで学ぶ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')

要素ごとの出現回数を集計する
テーブルの中の特定のカラムを指定して、含まれる要素の出現回数を集計します
「タイプ1」の要素ごとに出現回数を抽出してください
df['タイプ1'].value_counts()
![df['タイプ1'].value_counts()](https://smart-hint.com/wp-content/uploads/2021/12/image-21.png)
value_countsを利用することで列にある要素(データ)の出現回数を調べることができます

「タイプ1」の出現回数のデータをDataFrameに格納してください
pd.DataFrame(df['タイプ1'].value_counts())
![pd.DataFrame(df['タイプ1'].value_counts())](https://smart-hint.com/wp-content/uploads/2021/12/image-34.png)
value_countsのデータをDataFrameに格納するためには、pd.DataFrameを利用します
「タイプ1」と「タイプ2」の要素ごとに出現回数を抽出してください
pd.DataFrame(df[['タイプ1','タイプ2']].value_counts())
![pd.DataFrame(df[['タイプ1','タイプ2']].value_counts())](https://smart-hint.com/wp-content/uploads/2021/12/image-35.png)
value_countsは2つ以上の項目のそれぞれの出現回数も算出することができます
マルチインデックスという形式で出現回数が多い順で並びます
要素ごとに集計する
続いて特定の項目をまとめたうえで、平均や合計などの代表値を求める方法です
「タイプ1」ごとに数値データの平均値を求めてください
df.groupby('タイプ1').mean()

groupbyを利用することで、特定の項目ごとに集計を行うことができます
後ろにmeanの関数を続けると、平均を求めることが可能です

並び替えを実施する
最後はデータの並び替えです
「高さ」が小さい順に並び替えてください
df.sort_values('高さ')

sort_valuesを使うことで並び替えを自由に実施できます

「高さ」が大きい順に並び替えてください
df.sort_values('高さ', ascending=False)

sort_valuesのデフォルト設定は昇順(小さい順)で並び替えられます
パラメータのascendingを「False」として、降順(大きい順)に並び替えることができます
クロス集計表を作成する
続いてデータ分析の基本である「クロス集計表」を作成します
今回は出現回数のみ取り出します
「タイプ1」と「タイプ2」の出現回数を数えてください
pd.crosstab(df['タイプ1'],df['タイプ2'])
![pd.crosstab(df['タイプ1'],df['タイプ2'])](https://smart-hint.com/wp-content/uploads/2021/12/image-37.png)
crosstabを使うと、DataFrameにある2つの列でクロス集計表を作成することができます
最初に指定した項目がインデックス(縦)で、二番目に指定した項目がカラム(横)となり、
それぞれに対応した元のデータの行数が値に入ります

まとめ
- 要素ごとの出現回数を集計する
- 要素ごとに集計する
- 並び替えを実施する
- クロス集計表を作成する
今回はデータ分析で毎回と言っていいほど利用する「集計」について一問一答形式でご紹介してきました
また集計をもっと便利できるピボットテーブルについてはこちらをご覧ください

