Follow Us!!:

アプリなら、たくさんの便利な機能が無料で使える!
今すぐアプリをダウンロードして、もっと自由に学ぼう!

履歴の確認
お気に入り・フォローの登録
通知の受け取り
ファイルの作成・追加・複製
メモの作成・確認
モチベボードの投稿
App StoreからダウンロードGoogle Playで手に入れよう
運営会社お問い合わせ利用規約プライバシーポリシー

© 2025, okke, Inc.

キノコード / プログラミング学習チャンネル

Pandas入門講座|09.groupbyメソッドを使ってデータ集計するの方法 【PythonのライブラリPandas】

次の動画:Pandas入門講座|10.pivot_tableメソッドを使ってデータ集計する方法 【PythonのライブラリPandas】

概要

動画投稿日|2020年8月13日

動画の長さ|11:50

この動画では、データを集計する方法について学びます。 具体的には、売上管理表を使って部署や名前ごとで売上げや平均を集計をするといった方法をみていきます。 Excelでいうと、sum関数、sumifs関数、countifs関数、SQLでいうとgroupbyの方法になります。 Pythonでは集計方法をカスタマイズすることが可能です。そのため、その会社独自の集計方法や、特殊な集計をすることが可能です。 SQLやエクセルではできないことも可能なので、ぜひ最後までご視聴ください。 ▼目次 00:00 はじめに 01:07 Pandasのインポート 01:18 表示する列数・行数を変更 01:54 データフレームの読み込み 02:40 グループごとに集計する方法 03:38 グループごとに平均を算出する方法 03:57 複数のグループごとの平均を算出する方法 04:20 小数点以下省略する方法 05:02 グループごとの合計を算出する方法 05:10 グループごとのデータ数を数える方法 05:21 グループごとのデータ数を数える方法(欠損値を含む) 05:37 グループごとのn番目のデータ取得 06:19 グループごとの最大値する方法 06:24 グループごとの最小値する方法 06:37 複数要素でグルーピングする方法 07:38 複数の方法で集計ができるaggメソッド 08:14 groupbyを使って桁区切りで表示する方法 08:36 平均と合計、桁区切り表示 08:52 aggメソッド(複数計算) 09:27 groupbyで自作の関数適用 ▼自己紹介 現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など) 前職:リクルート ▼SNS Twitter : https://twitter.com/kino_code/likes Facebook :https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/ ▼文字書き起こし 読み込む前の準備として概要欄に記載したキノコードのサイトにExcelファイルを用意しています。 それをダウンロードして、学習用のJupyter Labを保存しているフォルダにに保存してください。 それではパソコン画面に切り替えてレッスンを進めていきましょう。 import pandas as pd まず、Pandasをインポートする記述を書きます。 「as」を使ってPandasを「pd」という名前で使えるようにしましょう。 実行します。 pd.options.display.max_rows = 10 pd.options.display.max_columns = None レッスン03で表示する列数・行数を変更はset_opitonでやってきました。 今回は、pd.options.displayで変更をしてみましょう。 pd.options.displayと書いてmax_rowと書きます。そして、これに10を代入します。 これで表示する行数を10行に変更することができます。 次に、表示する列数の変更をします。 max_columnsと書いて、Noneを代入します。 これで表示する列数・行数を変更ができました。 df = pd.read_excel('sample.xlsx',sheet_name='実績管理表') df 続いてレッスンで使うデータを説明します。 Excelデータを使います。 このデータはあるアパレル会社の販売データになります。 社員ごとに何をいくら売上したのかがわかります。 このExcelの中の実績管理表というシートを使います。 エクセルを読み取るにはread_excelメソッドを使いました。 これはレッスン6で説明しました。 エクセルのシートを指定して読み取ることができます。 heet_nameという引数にシート名を渡せばよいです。 実行してみましょう。 読み取れました。 df.groupby('氏名') それでは氏名ごとに合計や平均など色々な集計をしてみましょう。 エクセルでいうとsumifs関数であったり、averageifs関数、countifs関数になります。 SQLでいうとGroupbyです。 Pythonの場合だと、PandasのGroupbyメソッドを使います。 データフレームが代入されている変数のあとにドット、groupby、丸括弧。 丸括弧の中に、集計したいグループを記述します。 氏名ごとに集計をしたいので、氏名を記述します。 実行してみましょう。 集計結果が返ってきません。 これはオブジェクト生成されただけで、このオブジェクトに対して何も処理をしていないからです。 df.groupby('氏名').mean() このgroupbyメソッドに平均を求めならmean、合計を求めるならsumなどを追加することで集計することが可能です。 平均を求めてみましょう。 平均は、meanを使います。 実行します。 平均を集計することができました。 ただ、コードだと数値型のカラムがすべて平均になっていしまいました。 df[['氏名','売上金額']].groupby('氏名').mean() 売上金額だけ平均にしたい場合はどのようにしたらいいでしょうか? その場合は、二重括弧で氏名と売上金額だけを抽出し、groupbyの丸括弧の中に氏名を記述します。列の取得の仕方はレッスン4で説明しています。 実行します。 売上金額だけ平均を算出することができました。 ただし、今の平均の算出方法だと小数点以下がたくさん表示されて読みにくいですよね。 pd.options.display.float_format = '{:.0f}'.format そこで、小数点以下を表示させない設定に変更しましょう。 動画の最初で表示する行数や列数を設定しましたが、同じようにpd.options.displayを使います。float_formatと記述します。 これは小数点以下0桁を省略する記述です。 実行してみましょう。 df[['氏名','売上金額']].groupby('氏名').mean() それではもう一度、実行してみましょう。 小数点以下が表示されず、すっきりなりました。 df[['氏名','売上金額']].groupby('氏名').sum() 合計を算出した場合は、sumです。 実行してみましょう。 合計が表示されました。 df[['氏名','売上金額']].groupby('氏名').count() データ数を数えたい場合はcountでできます ただし、countメソッドだと、欠損値は数えてくれません。 df[['氏名','売上金額']].groupby('氏名').size() 欠損値も数えたい場合は、sizeメソッドを使います。 実行します。Seriesにて出力がされましたが、こうすれば欠損値も数えることができます。 続きは文字書き起こしブログにて。 ▼文字書き起こしブログ https://kino-code.com/pandas_groupby/ #PythonとPandas #Pandas入門 #データ集計 ▼お仕事のお問い合わせ キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。 お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

タグ

#高1#高2#高3#大学#レベル3#Python#講義

関連動画

9:34
Pandas入門講座|12.concat関数でデータフレーム同士を結合する方法【PythonのライブラリPandas】キノコード / プログラミング学習チャンネル
10:46
Pandas入門講座|10.pivot_tableメソッドを使ってデータ集計する方法 【PythonのライブラリPandas】キノコード / プログラミング学習チャンネル
17:48
Pandas入門|05.シリーズ (Series) とは【Pythonの必須ライブラリのPandasを初心者にわかりやすく解説】キノコード / プログラミング学習チャンネル
11:10
Pandas入門講座|11.mergeメソッドでデータフレーム同士を結合する方法【PythonのライブラリPandas】キノコード / プログラミング学習チャンネル
12:11
Pandas入門講座|13.Pandasで時系列データを扱う方法【PythonのライブラリPandas】キノコード / プログラミング学習チャンネル

関連用語