Python

【Pythonコード解説】pandasのgroupbyとaggを組み合わせると便利さが格段に向上します

2022年9月24日

【Pythonコード解説】pandasのgroupbyとaggを組み合わせると便利さが格段に向上します

こんにちは。TATです。

今日のテーマは「【Pythonコード解説】pandasのgroupbyとaggを組み合わせると便利さが格段に向上します」です。

 

Pythonのデータ分析ライブラリの1つであるPandasにはたくさんの機能が備わっています。

データの読み込みから、集計、前処理、可視化など、いろいろな用途に利用することができます。

 

本記事では、Pandasによるデータ集計に焦点を当てて、groupbyとaggの2つについて詳しく解説していきます。

結論、この2つを組み合わせるとデータ集計がかなり便利になります。

 

Pandasによるデータ集計に慣れてしまったらもうExcelには戻れなくなりますw

 

まずはそれぞれの関数についておさらいします

まずは、本記事で焦点を当てるgroupbyaggそれぞれについて簡単にみていきます。

 

利用するデータについて

それぞれの関数の機能の使用例をご紹介するために、適当なデータを用意します。

 

Kaggleデータを使います

自分で用意するのはめんどくさいのでこちらの記事で利用したKaggleのデータを再利用します。

【Kaggleでデータ分析】Pythonでアニメデータを分析する①〜データの概要把握とデータ整形〜
【Kaggleでデータ分析】Pythonでアニメデータを分析する①〜データの概要把握とデータ整形〜

続きを見る

 

ソースデータはこちらです。アニメのレビューをまとめたデータになります。

→ Anime list

 

データをダウンロードするには登録(Register)が必要です。

Kaggleは意味ないのか?→ データ分析を勉強するには最適な環境です
【経験談】Kaggleは意味ないと言われるけど?→ データ分析を勉強するには最適な環境です

続きを見る

 

データの確認

用意したデータを確認します。

 

 

各アニメのスタジオやレビューなどいろいろな情報がまとめられています。

本記事では、このデータを使ってgroupbyとaggを使ってみます。

 

groupby

まずはgroupbyです。

基本的な使い方についてみておきます。

 

任意のカラムごとに集計できる

groupbyでは任意のカラムごとにデータを集計することができます。

 

例えば、demographicごとのレビューの平均点を出してみます。

 

上記の通り、数値データが全て計算されます。

平均点は数値データしか計算できないので、計算できないカラムは自動的に排除されます。

 

ここでは平均点を計算するためにmean()を使いましたが、このほかにもいろいろな計算ができます。

groupbyの計算メソッド(一例)

  • mean: 平均
  • sum: 合計
  • median: 中央値
  • max: 最大値
  • min: 最小値
  • std: 標準偏差
  • nunique: ユニーク値の個数
  • size: データ数
  • first: 最初のデータ
  • last: 最後のデータ
  • など

 

必要に応じていろいろな計算方法を適用できるのでとても便利です。

 

複数のカラムを選択することも可能

また、複数のカラムを指定して計算することも可能です。

この際には、list形式で指定します。

 

例えば、demogiraphicとstatusで平均点を計算するとこんな感じです。

 

複数カラムを指定した際にはマルチインデックスとなります。

もちろん、この場合でも上記でご紹介したような計算方法を適用することが可能です。

 

agg

次にaggについて基本的な使い方をサクッと見ていきます。

aggはおそらくaggregateの略で、カラムや列ごとにデータを集計することができます。

 

aggの基本的な使い方

aggの基本的な使い方はシンプルで、引数に計算方法を指定すればOKです。

 

例として平均値を計算してみます。

 

平均値なので、数値データのカラムだけが計算されます。

 

複数の計算方法を指定することも可能

複数の計算方法を指定することも可能です。

 

この場合はlist形式で指定します。

 

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

 

カラムごとに計算方法を指定できる

さらにカラムごとに計算方法を指定することもできます。

 

カラムAではsum、カラムBではmeanといったように、カラムごとに異なる計算を指示することができます。

この場合は引数をdict型にして、カラムごとにリスト形式で計算方法を指定します。

 

例として、適当にratingは平均、epsは平均と合計を出してみます。

 

指定されたものだけが計算されていることが確認できます。

 

groupbyとaggを組み合わせると超便利になる

上記でご紹介したgroupbyとaggを組み合わせるとめちゃくちゃ便利になります。

 

普通に使えば変わりないw

基本的に普通に使う分には結果に変わりないので、お好きな方を使えばOKです。

 

この場合はaggを入力するのはめんどいのでシンプルにmean()を使えばいいですね。

 

特定のカラムだけを計算できる

groupbyとaggを組み合わせて使うメリットはここからです。

 

まず、特定のカラムだけを計算することができます。

不要な部分が出てこないのでスッキリします。

 

 

この場合、計算方法が1つの場合はlist形式ではなくても大丈夫です。

無駄な計算が省けるのもプログラム的にはメリットです。

 

カラムごとに計算方法を変えられる

カラムごとに計算方法を変えることができるのもメリットです。

 

例としてratingは平均点、nameはデータ数を出してみます。

 

きちんと計算されていることが確認できます。

 

複数の計算方法も指定可能

さらに複数の計算方法を指定することも可能です。

この場合はlist形式になります。

 

例として、ratingの平均、標準偏差、データ数をまとめて出してみます。

 

上記の通り、計算方法を複数指定した場合は、マルチカラムになります。

 

groupby x agg の組み合わせがマジ便利

このように、groupbyとaggを組み合わせると、データの集計方法が格段にレベルアップします。

複数の計算方法をまとめて適用することも可能ですし、カラムごとに異なる計算方法を適用することも可能です。

必要なデータだけが計算されるので、計算の無駄もなくなります。

 

Python、特にPandasのこういった機能の利便性を知ってしまうと、もうExcelとかには戻れなくなりますw

 

まとめ

本記事では、「【Pythonコード解説】pandasのgroupbyとaggを組み合わせると便利さが格段に向上します」というテーマでお話ししました。

 

Pandasにはデータ集計に便利な機能がたくさん備わっています。

その中でも、groupbyとaggを組み合わせるとかなり便利になります。

 

この機能を知らずに複数行かけて書いていたコードも、groupbyとaggを組み合わせるだけで数行に収まるようになったりもします。

Pythonにはこういった便利なライブラリや機能がたくさん用意されています。

 

本記事がみなさんのお役に立てれば幸いです。

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

 

Pythonおすすめ学習法

Udemy

Udemyの特徴

  • 高品質の動画教材がリーズナブルに購入できる
  • セール中なら定価の90%オフなどの価格破壊が起こる
  • 講師に直接掲示板から質問ができ、疑問を解消しながらスムーズに学習できる
  • 動画はダウンロード可能で、隙間時間に効率的に学習できる
  •  30日間の返金保証、一度購入すれば視聴期限なく受講可能

\30日返金保証/

Udemy 公式サイトへ

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

キカガク

キカガクの特徴

  • Pythonだけでなく、数学の基礎から、環境構築、AIアプリケーション開発まで一気通貫で学べる
  • 自走できるAI・DX人材を育成
  • オンデマンドの講義 + プロの講師に質問し放題、定期的なメンタリング付き
  • 今後増える動画コンテンツを含め、全ての動画コンテンツが一生見放題
  • 専門実践教育訓練給付金制度を利用すると最大で受講料の70%が還元される

\Pythonだけでなく、機械学習やAIの基礎から学べる/

キカガクを詳しく見る

企業の研修材料にも採用される実績と信頼のあるスクールです!

データミックス

データミックスの特徴

  • データサイエンティストが開発・監修した体系的かつ実践的に学べるカリキュラム
  • 「スキル」のみでなく、データサイエンスの本質である「理論」や「思考」が学べる
  • エンジニアに限らず、多様なキャリアを形成・構築できる
  • オンラインチャットツールによる質問対応やコミュニティなどの充実したフォロー体制
  • 専門実践教育訓練給付金の対象講座で授業料の最大70%還付

\データサイエンスとビジネスが学べる/

データミックス(datamix)を詳しく見る!

エンジニア転職だけでなく起業やフリーランスなど多様なキャリア形成・構築に繋がる

-Python
-,

© 2022 気ままなブログ