Python

【Pythonコード解説】Pythonでポケモンのデータセットを集計する

2021年1月24日

【Pythonコード解説】Pythonでポケモンのデータセットを集計する

こんにちは。TATです。

今回のテーマは「Pandasを使ったデータ集計」です。

Pandasはデータ分析用のPythonライブラリーで、データ分析に便利な関数がてんこ盛りです。

ここでは例として過去の記事でも登場したKaggleのポケモンのデータセットを使って解説していきます。

ポケモンのデータセットを発見したので分析してみた!【Pythonによるデータの可視化も解説】
ポケモンのデータセットを発見したので分析してみた!【Pythonによるデータの可視化も解説】

 

Pandasを利用すると、Excelでできるようなデータの集計を簡単に行うことができます。

値ごとにグルーピングして、それぞれの平均値を計算したり、最大値や最小値を見つけたり、Excelでできるような計算はほとんどPandasのライブラリーでできると思っていただいて問題ありません。

そして、Pandasであれば、こういった作業がほんの数行で完了します。

さらにExcelでは100万行(今は変わってるのかな?)までの行数制限がありますが、PythonであればPCのスペックが許す限りいくらでもいけます。

そこまででかいデータを扱うことはなかなかないかもしれませんが、Pythonを扱うことができればかなり便利になります。

【Pythonコード解説】Pythonでポケモンのデータセットを集計する

【Pythonコード解説】Pythonでポケモンのデータセットを集計する

データの準備

まずはデータの準備です。

 

データはKaggleから取得

今回利用するポケモンのデータセットはKaggleから取得できます。

ポケモンのデータはこちらになります。

データを取得するには無料の会員登録が必要になります。

→ Pokemon with stats

 

Pandasでデータを読み込む

ダウンロードしたデータ(CSVファイル)をPandasで読み込めば、データ分析を開始することができます。

今回は、ポケモンの日本語名を取得して、メガ進化などうまく翻訳できなかったデータは排除したものを使います。

このやり方については過去記事で解説しています。

【Pythonコード解説】ポケモンの名前を英語から日本語に変換する辞書を作る

 

用意したデータがこちらです。

もともとは800行のデータがありましたが、メガ進化などのデータを排除したら95行が排除されて705行のデータになります。

 

データの概要を把握できるdescribe関数

ここからデータを集計するために役立つ関数を解説していきます。

まずはdescribe関数です。

過去の記事でもなんども登場しているお馴染みの関数です。

 

データ全体を把握できる

describe関数を使うと、データ全体を把握することができます。

実際にお見せした方が早いので、まずは表示されるデータを見てください。

基本的な統計データが計算されます。

 

表示されるデータは次の通りです。

  • データ数
  • 平均
  • 標準偏差
  • 最小値
  • 第一四分位数(25%)、第二四分位数(50%)、第三四分位(75%)
  • 最大値

 

平均値を把握しつつ、標準偏差でデータのばらつき具合を確認することができます。

これだけでなんとなくデータ全体の雰囲気がつかめます。

第二四分位数は中央値と同じです。

最小値、最大値、第一四分位数(25%)、第二四分位数(50%)、第三四分位(75%)から、データのヒストグラムをイメージすることができます。

 

データ分析を行う際には、まずはこのdescribe関数を使ってデータ全体の概要をつかみます。

ポイント

describe関数を使ってデータ全体を把握する

 

数値データじゃないと計算されません

そしてデータ集計を行う際に1つだけ注意点があります。

それは、数値データじゃないと計算されないということです。

当たり前のことなのですが、データをきちんとみると数値データに見えるけど実際は文字列という場合もよくあります。

特にCSVから読み込んだデータやスクレイピングで収集したデータは数字でも文字列として扱われていることがあるので注意が必要です。

スクレイピングで取得したデータは基本的に文字列です。

期待していたデータが集計されていない場合は、データの型をチェックしてみてください。

ポイント

計算されない場合はデータの型をチェックする

 

info関数でデータの型をチェックする

各カラムのデータの型については、info関数で確認できます。

describe関数と一緒に使ってデータを確認するとミスが減ります。

intとかfloatが計算できるデータ型になります。

 

文字列の集計

あまり使わないかもですが、次に文字列データの集計についてもみておきます。

 

データ数をチェックするならvalue_counts()

文字列の集計を行うなら value_counts関数が便利です。

これはカラムごとで使用して、各値の個数をカウントしてくれます。

結果は個数が多い順に表示されます。

例としてType 1をカウントしてみます。

この場合は水タイプが最も多く、ひこうタイプが一番少ないことが1発で確認できます。

 

重複を排除するならunique関数

次に重複したデータを排除した結果を表示してみます。

これにはunique関数を使います。

名前の通りですね。

これを使うと重複データは削除されて表示されます。

先ほどと同様にType 1に使ってみます。

重複しているデータが排除されていることがわかります。

 

データ集計にはgroupby関数が便利

最後に、Pandasによるデータ集計で最も利用される(と個人的に思ってる)groupby関数について解説します。

これは例えば、Type 1ごとに数値データを集計して平均値を出したり最大値、最小値を計算することができます。

エクセルでもできるような計算が、Pythonなら数行でできます。

 

1つのカラムを指定して集計する

まずは基本的な使い方として1つのカラムを指定してデータを集計してみましょう。

ここでは、Type 1で集計します。

Type 1の値ごとに集計してくれます。

ここではType 1の平均値を計算しています。

 

mean()が平均値を意味しています。

これをmax()に変更すると最大値、min()で最小値、std()で標準偏差、count()でデータ数、median()で中央値を計算することができます。

 

複数のカラムを指定して集計する

先ほどの例ではType 1で集計しましたが、複数のカラムを指定することも可能です。

この場合はリストで表記します。

例としてType 1とLegendaryで集計するとこんな感じになります。

Type 1でグルーピングされて、さらにLegendaryのTrueとFalseでそれぞれ集計されていることがわかります。

 

agg関数で特定のカラムごとに計算する

次に特定カラムのみを計算する方法をご紹介します。

全てを計算してから必要なカラムだけを取り出すのもありですが、もっとスマートに行うにはagg関数を使うと便利です。

これを使えば、計算するカラムを指定できるだけではなく、カラムごとに計算方法を指定することができます。

例として、Type 1でグルーピングして、Totalでは平均値、HPでは最大値を計算してみます。

上記の通りで、agg関数を使う際には、カラムと計算方法を辞書型で指定します。

 

agg関数で1つのカラムに対して複数の計算をする

そしてagg関数を使えば、カラムごとに複数の計算を指定することも可能です。

この場合はリストで指定します。

例として、Type 1でグルーピングしてTotalでは平均値と標準偏差、HPでは最小値と最大値を計算してみます。

複数の計算方法を指定した場合には、上記の通りマルチインデックスになります。

 

agg関数はgroupby関数なしでも使えます

ここまでgrouoby関数と組み合わせて紹介してきましたが、agg関数は単体でも利用可能です。

こんな感じで全カラムで計算することもできれば、カラムを指定して計算方法を指定することも可能です。

この場合は指定した計算方法がindexになります。

カラムごとに別々の計算方法を指定した場合には、指定されていない箇所はNaNになります。

 

以上で、Pandasを利用したデータ集計の解説はおしまいです。

 

データ分析にはPythonが最適です

ここまで紹介してきたように、Pythonを使うと複雑な計算処理もシンプルなコードで一瞬で計算することができます。

Pythonはデータ分析やAI関連に強くて、世界中で人気を集めている言語です。

すっきりとしたコード体系で、誰でもきれいなコードが書けるような設計になっています。

過去の記事では、データ分析としてPythonをご紹介している記事や、Pythonでできることをまとめたものがありますので、もしPythonにご興味があれば合わせてご覧ください。

【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

 

\30日返金保証/

Udemyを詳しく見る

セール中なら90%オフとかで購入可能です!

 

まとめ

いかがでしたでしょうか。

ここでは、ポケモンのデータセットを題材にPythonのPandasを使ったデータ集計の方法について解説しました。

普段はエクセルなどで計算している方も多いかと思いますが、Pythonであれば複雑な処理でも数行のコマンドで一瞬で計算することができます。

エクセルでは行数に制限があるので大きなデータセットを扱うことはできませんが、Pythonなら問題なしです。

効率よくデータ分析するならPythonが最適です。

 

今後もこういったPythonのコード解説に関する記事を増やしていければと思います。

次は、ポケモンのデータセットを使って、データの可視化にフォーカスしてコード解説記事を書こうと思っています。

ここで紹介した集計データを可視化することで、ただの数値の羅列よりもかなりデータの傾向や特徴がわかるようになります。

 

ここまで読んでくださり、ありがとうございました。

ポケモンのデータセットを発見したので分析してみた!【Pythonによるデータの可視化も解説】
ポケモンのデータセットを発見したので分析してみた!【Pythonによるデータの可視化も解説】
【Pythonコード解説】ポケモンの名前を英語から日本語に変換する辞書を作る
【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】




Pythonの独学ならUdemyがオススメです。



Udemyは動画教材でわかりやすく、セールで買うとコスパ最強です。



僕はUdemyでPythonを独学して転職にも成功して人生が大きく変わりました。



\30日返金保証/

Udemyを詳しく見る

セール中なら90%オフとかで購入可能です!




独学がきついならプログラミングスクールも検討の余地あり



独学がきつい、挫折した、という方はプログラミングスクールも検討の余地があります。



その際には、必ず無料体験レッスンを受けたうえで判断するようにしましょう。



決して安い料金ではないので、慎重に判断を下す方が無難です。



Pythonが学べるおすすめプログラミングスクール



TECH::CAMP(テックキャンプ)

  • 自習型なので自分のペースで学習を進めたい方におすすめ

  • 受講期間中はマンツーマンで最適な学習プランを提案してもらえる

  • 受講期間中はあらゆるテクノロジースキルが学び放題(他コースも受講できます)

  • 分からないところは何度でも質問ができるため、挫折することがない

  • 大手のスクールで安心


\チャットで質問し放題/

TECH::CAMPを詳しく見る!

自習型で自分のペースで学習を進めたい方にオススメ



 

CodeCamp(コードキャンプ)

  • オンラインによるマンツーマンレッスンが受けられる

  • レッスンごとに好きな講師を選択することができる

  • 講師は現役エンジニアなので、より実践的なスキルが学べる

  • オンラインで365日/7時〜24時迄、時間と場所を選ばずに学習できる

  • 就職/転職やキャリアについての相談が無料でできる

  • 無料体験レッスンを受講すると受講料が1万円引になる

  • 大手のスクールで安心


\マンツーマンレッスンで学べる/

CodeCampを詳しく見る!

無料体験レッスンを受けたら受講料が1万円引きに



 

キカガク

  • Pythonを基礎から学びたいという初心者にもおすすめです

  • 機械学習やAIに関心がある方におすすめ

  • E資格認定コースなので、熟語に試験に受かれば転職で有利です

  • 受講者はキカガクが提供する全ての講座が無期限で見放題

  • 受講者の多くが専門実践教育訓練給付金制度を使用して実質70%オフの料金で受講している


\AIや機械学習を本気で学びたい方へ/

キカガクを詳しく見る!

E資格認定コースでPythonの基礎からしっかりと学べる



 

.Pro

  • .Proの受講生の約90%は未経験からのスタートなので初心者でも安心

  • 完全対面式・少人数クラスの講義スタイル

  • 現役エンジニアやAIの研究者が教える実践形式のカリキュラムで、より実践的なスキルを獲得できる

  • キャリアアップ目的の為の提携企業への転職支援が受けられる

  • フリーランス・起業 の要となるマーケティングや案件受注の仕方等も身に付けることができる

  • WebフレームワークであるDjangoが学べる


\完全対面式の講義スタイル/

.Proを詳しく見る!

受講生の90%は未経験スタートからのスタートで初心者でも安心



データ販売を始めました


オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータの販売を始めました。

あらゆるデータを集約して、誰でも簡単にスクリーニングできるようにCSV形式でデータを提供します。

オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータを販売します!

続きを見る


-Python
-, , ,

© 2022 気ままなブログ