Pythonのgroupbyメソッドを使う方法【初心者向け】
初心者向けにPythonのPandasライブラリのgroupbyメソッドの使い方について解説しています。groupbyを使うことでグループごとにデータを集計し、その最大値や最小値を求めることができます。groupbyの書き方と実行結果を実際の例で確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PythonのPandasライブラリのgroupbyメソッドの使い方について解説します。
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pandasライブラリのgroupbyメソッドの使い方について詳しく説明していくね!
お願いします!
groupbyメソッドとは
groupbyメソッドとは、pandasモジュールのDataFrameで利用できるメソッドです。
通常DataFrameは何らかの軸(例えば年月や性別)を含みます。
軸ごとにデータを集約し、平均値、最大値、最小値などを計算するためにgroupbyメソッドを使います。
groupbyメソッドの使い方
DataFrameオブジェクトに対し、groupbyメソッドを呼び出します。引数には複数指定できるものがありますが、byかlevelの指定が必須です。
byでは辞書、関数、ラベルを指定できます。
詳細は公式の文書を参照してください。
import pandas as pd df = pd.DataFrame() # DataFrameインスタンスの作成 # dfに対する操作 grouped = df.groupby(by=...) # groupbyメソッドで集計
実際に書いてみよう
サンプルコード
import seaborn as sns iris = sns.load_dataset('iris') print(iris.head()) print(iris.groupby('species').mean())
実行結果
sepal_length sepal_width petal_length petal_width species 0 5.1 3.5 1.4 0.2 setosa 1 4.9 3.0 1.4 0.2 setosa 2 4.7 3.2 1.3 0.2 setosa 3 4.6 3.1 1.5 0.2 setosa 4 5.0 3.6 1.4 0.2 setosa sepal_length sepal_width petal_length petal_width species setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026
解説
1,3行目でseabornモジュールをインポートし、組み込みのデータセット(iris=アヤメ)を読み込んでいます。
4行目でデータフレームの先頭5要素を表示しました。
なお、irisデータセットは150件のデータを含んでいます。
データの意味は左から順に萼片の長さ、萼弁の幅、花弁の長さ、花弁の幅、種別を示しています。
5行目でspecies(種別)で集計した上で、mean(平均値)を計算しています。
結果、種別ごとに萼片の長さ等の平均値が表示されました。
監修してくれたメンター
橋本紘希
システムインテグレータ企業勤務のシステムエンジニア。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。