( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

ポケモンで学ぶPython|#5 データを集計する

ポケモンのデータで学ぶPython

Python(パイソン)というプログラミング言語を、ポケモンという誰もが知っているコンテンツで学んでいく企画です

今回はPythonのDataFrameにあるデータを一定の形式で取り出す(=集計する)方法をご紹介します

  • 要素ごとの出現回数を集計する
  • 要素ごとに集計する
  • 並び替えを実施する
  • クロス集計表を作成する

データの集計は分析の基礎なので、何も見ずに実施できるようにしてください

今回利用するデータについてや、Pythonのセットアップは下記記事をご覧ください

ポケモンで学ぶデータ分析|データの中身を知ろう ポケモンで学ぶPython|#1 セットアップを始めよう
ポケモンのデータ一覧

事前準備

Pandasを事前にインポートしておきます

import pandas as pd

ポケモンのデータ(Excel:105 KB)をダウンロードし、Pythonで読み取ってください

# Pokemon_1のシートを変数(df)に格納する
df = pd.read_excel('pokemon_data.xlsx', sheet_name='Pokemon_1')
df = pd.read_excel('pokemon_data.xlsx', sheet_name='Pokemon_1')

要素ごとの出現回数を集計する

テーブルの中の特定のカラムを指定して、含まれる要素の出現回数を集計します

「タイプ1」の要素ごとに出現回数を抽出してください

df['タイプ1'].value_counts()
df['タイプ1'].value_counts()

value_countsを利用することで列にある要素(データ)の出現回数を調べることができます

【Python】value_counts|特定列の要素の出現回数を調べる

「タイプ1」の出現回数のデータをDataFrameに格納してください

pd.DataFrame(df['タイプ1'].value_counts())
pd.DataFrame(df['タイプ1'].value_counts())

value_countsのデータをDataFrameに格納するためには、pd.DataFrameを利用します


「タイプ1」と「タイプ2」の要素ごとに出現回数を抽出してください

pd.DataFrame(df[['タイプ1','タイプ2']].value_counts())
pd.DataFrame(df[['タイプ1','タイプ2']].value_counts())

value_countsは2つ以上の項目のそれぞれの出現回数も算出することができます

マルチインデックスという形式で出現回数が多い順で並びます


要素ごとに集計する

続いて特定の項目をまとめたうえで、平均や合計などの代表値を求める方法です

「タイプ1」ごとに数値データの平均値を求めてください

df.groupby('タイプ1').mean()
df.groupby('タイプ1').mean()

groupbyを利用することで、特定の項目ごとに集計を行うことができます

後ろにmeanの関数を続けると、平均を求めることが可能です

【Python】項目をまとめて集計する方法|groupby

並び替えを実施する

最後はデータの並び替えです

「高さ」が小さい順に並び替えてください

df.sort_values('高さ')
df.sort_values('高さ')

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

【Python】sort_values|データを並び替える方法

「高さ」が大きい順に並び替えてください

df.sort_values('高さ', ascending=False)
df.sort_values('高さ', ascending=False)

sort_valuesのデフォルト設定は昇順(小さい順)で並び替えられます

パラメータのascendingを「False」として、降順(大きい順)に並び替えることができます

クロス集計表を作成する

続いてデータ分析の基本である「クロス集計表」を作成します

今回は出現回数のみ取り出します

「タイプ1」と「タイプ2」の出現回数を数えてください

pd.crosstab(df['タイプ1'],df['タイプ2'])
pd.crosstab(df['タイプ1'],df['タイプ2'])

crosstabを使うと、DataFrameにある2つの列でクロス集計表を作成することができます

最初に指定した項目がインデックス(縦)で、二番目に指定した項目がカラム(横)となり、

それぞれに対応した元のデータの行数が値に入ります

【Python】crosstab|カテゴリーごとの出現回数を算出する

まとめ

  • 要素ごとの出現回数を集計する
  • 要素ごとに集計する
  • 並び替えを実施する
  • クロス集計表を作成する

今回はデータ分析で毎回と言っていいほど利用する「集計」について一問一答形式でご紹介してきました

また集計をもっと便利できるピボットテーブルについてはこちらをご覧ください

ポケモンで学ぶPython|#6 最強ピボットテーブル
お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。