Pandas入門講座|10.データ集計(pivot_table)の方法【PythonのライブラリPandas】

オススメ

Excelでよく使われるピボットテーブルですが、Pythonのpandasでもできます。
Pandasでのピボットテーブル は、集計方法をカスタマイズすることが可能です。そのため、その会社独自の集計方法や、特殊な集計をすることができます。
データ集計、データ分析でよく使われるピボットテーブルをこの動画でぜひマスターをしましょう。
読み込む前の準備として概要欄に記載したキノコードのサイトにExcelファイルを用意しています。
それをダウンロードして、学習用のJupyter Labを保存しているフォルダにに保存してください。
それではパソコン画面に切り替えてレッスンを進めていきましょう。

▼目次
00:00 はじめに
00:47 Pandasのインポート
00:59 表示する列数・行数を変更
01:25 データフレームの読み込み
02:08 ピボットテーブルとは
03:36 ピボットテーブルの使い方
04:29 平均算出
04:51 小数点以下を省略
05:21 複数データの集計
05:58 欠損値Nanの置き換え
06:15 groupbyのような集計
06:38 合計列追加
07:09 複数の集計方法
07:24 独自の集計方法
08:43 pivotの使い方、pivot_tableとの違い
10:04 おわりに

▼関連動画
【Python超入門コース】12.関数

【Python超入門コース】12.関数 |関数を料理ロボットに例えて説明しました【プログラミング初心者向け入門講座】

Pandas入門講座|06.CSV・Excelファイルの読み込み・書き出し、データベースとの接続方法

Pandas入門講座|06.CSV・Excelファイルの読み込み・書き出し、データベースとの接続方法【PythonのライブラリPandas】

▼おすすめ動画
Pythonで面倒なExcelの仕事を自動化しよう【第一弾】

Pythonで面倒なExcelの仕事を自動化しよう( 第一弾 )|一瞬で仕事がおわるプログラミング活用術

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングのやり方をわかりやすく解説

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう|一瞬で仕事がおわるプログラミング活用術

Python超入門コース |Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など)
前職:リクルート

▼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/

▼文字書き起こし
import pandas as pd

まず、Pandasをインポートする記述を書きます。
「as」を使ってPandasを「pd」という名前で使えるようにしましょう。
実行します。

pd.options.display.max_rows = 10
pd.options.display.max_columns = None

表示する列数・行数を変更をします。
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で説明しています。
エクセルのシートを指定して読み取りましょう。
sheet_nameという引数に実績管理表を渡します。
実行してみましょう。
読み取れました。

pivot_tableのコードを書いていく前に、まずピボットテーブルとはなんでしょうか?
ピボットテーブルは、簡単にいってしまうとクロス集計表です。
クロス集計表とは、2つのカテゴリのデータを同時に集計したものです。
例えば、これは売上管理表の「氏名」と「商品分類」のカテゴリをもとに、売上を合計したものです。
確かに、2つのカテゴリのデータを同時に集計したものですよね。
クロス集計表のことをエクセルやPandasではピボットテーブルといっています。
ピボットとは軸という意味で、テーブルは表という意味です。
氏名や性別、商品分類、商品名などいろいろな軸を変えて、表にすることができるのでピボットテーブルといいます。
ピボットテーブルの便利なところはどんなところでしょうか?
例えば、前回のレッスンのgroupbyでは、氏名の列でグループ化をして合計や平均の集計ができます。
つまり、縦方向にデータを集計していました。
ピボットテーブルは、縦方向に加えて、横方向にも項目を追加して集計することができます。
つまり、2つのカテゴリのデータを一度にみることができ、それぞれのデータの違いが明確になります。
ピボットテーブル 、つまり、クロス集計は、データ分析ではシンプルだけど非常にわかりやすい分析手法です。
Pythonでのやり方をぜひマスターしてください。
それでは早速ソースコードをみていきましょう。

df_pivot = df.pivot_table(index=’氏名’, columns=’商品分類’,values=’売上金額’, aggfunc=’sum’)
df_pivot

それでは、氏名と商品分類で売上金額の合計を算出してみましょう。
dfドット、pivot_table丸括弧。引数indexに氏名、coluumnsに商品分類、valuesに集計するデータの売上金額を指定します。そしてaggfuncという引数が集計方法です。sumを渡して合計を算出します。
売上の集計であれば、valuesに売上金額を記述し、例えば、数量の集計であれば、valuesに数量。単価であればvaluesに単価を記述します。
そしてaggfuncという引数が集計方法です。sumを渡して合計を算出します。
実行します。
クロス集計表、ピボットテーブルができあがりました。

df_pivot = df.pivot_table(index=’氏名’,values=’売上金額’, aggfunc=’sum’)
df_pivot

ちなみに、columnsを設定せずにindexだけ設定すればgroupbyのような使い方ができます。
実行しましょう。
groupbyのような使い方ができますね。

df_pivot = df.pivot_table(index=’氏名’, columns=’商品分類’,values=’売上金額’, aggfunc=’mean’)
df_pivot

続きは文字書き起こしブログにて。

▼文字書き起こしブログ
https://kino-code.com/pandas_pivot_table/

#PythonとPandas #Pandas入門 #データ集計

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. Kenji T より:

    いつも分かりやすい講座ありがとうございます。pivot_tableについて1点質問させてください。
    indexに指定した列の値の順番は、なんらかの方法で変更もしくは指定することはできるのでしょうか?
    例えば、2:29 で名前を上から五十音順にする、自分で指定したリスト([井上 真, 上瀬 由和, 西尾 謙,・・・])の順にする等の操作です。

  2. malo 21st より:

    ありがとうございます。社内のpandas教育に使わせてもらってます。
    ちょっと1点。文字書き起こしブログに埋め込まれた動画が groupby になっています。

  3. nawanagatoshi より:

    ゴウケイトイウシュウケイガ もはやロボット口調になっていて音編集の苦労が図り知れるww いつもありがとうございますm(_ _)m

タイトルとURLをコピーしました