#29 ピボットテーブル(1)

>100 Views

October 13, 23

スライド概要

データを可視化する方法は、グラフだけではありません。

2つのカテゴリのデータを同時に集計した結果を示す表をクロス集計表と言いますが、このクロス集計表によって、様々な考察を得ることができます。

このセクションでは、クロス集計表を作成するピボットテーブルを解説します。

75 pd.pivot_table(データ名, index=“列名1”, columns=“列名2”,
         , values=“列名3”, aggfunc=’関数’, 他の引数)

75のプログラムの引数を何度か他の列名と書き換えたり、省略したりして、ピボットテーブルによるクロス集計表の作り方を身に付けていきましょう。

1st STEP同様、動画のテキスト、追加情報は下記のブログを参考にしてください!

■この動画のブログ

●データサイエンス チュートリアル
https://tutorial4datascience.blogspot.com/

■参考URL

●株式会社Spotの「Pandasでピボットテーブルを手軽に作成するpivot_table関数の使い方」

https://deepage.net/features/pandas-pivot.html

profile-image

すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけ、ブルシットジョブをこの世からなくしていきましょう!

関連スライド

各ページのテキスト
1.

1 2nd STEP 集計とグラフ描画 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数)

2.

2 Section 27 ピボットテーブル(1) 1.クロス集計表 2つのカテゴリのデータを同時に集計した結果を示す表をクロス集計表と言います。例えば、 下記のようにある団体に所属する職員の居住国と性別をまとめた表のことです。 表の上部の見出しの部分を「表頭(ひょうとう)」、左側の見出しの部分を「表側(ひょうそ く)」と言い、クロス集計表は、表側の変数と表頭の変数の関係を理解するために使います。 例えば、下のクロス集計表では、英国、オランダの居住者は双方ともに全体の50%ですが、 英国の女性比率は40%(20人)、オランダの女性比率は80%(40人)とオランダの女 性比率の高さが際立ちます。このような考察を得るために、クロス集計表を作成します。 表 頭 単位:人 英国 オランダ 計 表 男性 30 10 40 側 女性 20 40 60 計 50 50 100 出典:星野崇宏,上田雅夫. 「マーケティング・リサーチ入門 」. 有斐閣, 2018, p53

3.

3 Section 27 ピボットテーブル(1) 2.ピボットテーブル 必須項目 Pandasの「pivot_table」は、クロス集計表を作成する機能を持つプログラムです。 「pivot_table」は、大量のデータをすばやく集計でき、柔軟な(思い通りに)集計を行う ことができます。 75 pd.pivot_table(データ名, index=“列名1”, columns=“列名2”, , values=“列名3”, aggfunc=’関数’, 他の引数) 列名1 「表側」、すなわち、「まとめる」項目にしたい列を指定。 列名2 「表頭」すなわち、「分割」する項目にしたい列を指定。 列名3 「計算する値」にしたい列を指定。 「列名1」、「列名2」は、集計したい表によって、どちらかを省略することが可能です。 ■「列名1」を省略すると、表側は「列名3」になります。 ■「列名2」を省略すると、表頭は「列名3」になります。

4.

4 Section 27 ピボットテーブル(1) 3.ピボットテーブル aggfunc 75 pd.pivot_table(データ名, index=“列名1”, columns=“列名2”, , values=“列名3”, aggfunc=‘関数’, 他の引数) 「aggfunc=‘関数’」には、「values=」で指定した「列名3」に対して、どのような計算をす るかを指示する関数を指定することができます。 「aggfunc=‘関数’」を省略すると、「mean」、すなわち「列名3」の平均値が計算されます。 4.ピボットテーブル 他の引数 margins=True 小計を表示します。省略すると「margins=False」となり小計は表示されません。 margins_name=“小計の名称" 小計の名称を指定することができます。省略すると「margins_name=False」とな り、小計の名称は「All」になります。

5.

5 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” ,aggfunc=‘関数’, 他の引数) まずは、ピボットテーブルを作る元データ「id_pos11」を確認してみましょう。元データの確認 は、新しいプログラムを書く時には、常に心がけましょう。

6.

6 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) ピボットテーブルを作成していきます。データを「id_pos11」、index(まとめる項目)に「価 格帯」、 columns(分割する項目)に「Country」、values(計算する値)に「Total」、 関数に「sum」を使います。

7.

7 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) columns(分割する項目)を省略してみましょう。表頭は、 values(計算する値)に 指定した「Total」になります。index(まとめる項目)で指定した「価格帯」ごとの「Total」 の合計値を算出した集計表になりました。

8.

8 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) 今度は、 index(まとめる項目)を省略してみましょう。 表頭は、values(計算する 値)に指定した「Total」になりました。 今度は、columns(分割する項目)で指定した 「Country」ごとの「Total」の合計値を算出した集計表になります。

9.

9 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) 次に、aggfuncを省略してみましょう。「id_pos12_1」と同じような表ですが、数値がかなり 小さな値になっています。

10.

10 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) 「aggfunc=‘mean‘」を追加してみます。「id_pos12_4」と「 id_pos12_5」の数値はす べて同じになりました。 aggfuncを省略すると、 「aggfunc=‘mean‘」と同じ結果にな ることがわかりました。

11.

11 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) 「他の引数」を書き加えていきます。まずは、「margins=True」。行と列の小計が「All」と いう名称で加えられました。

12.

12 Section 27 ピボットテーブル(1) 75 データ名.pivot_table(index=“列名1”, value=“列名2” , aggfunc=‘関数’, 他の引数) 「margins_name=“計”」を追加して、小計の「All」の名称を「計」に変更しましょう。

13.

13 Section 27 ピボットテーブル(1) 参 考 株式会社Spotの「Pandasでピボットテーブルを手軽に作成するpivot_table関数の 使い方」を参照して、様々なクロス集計表を作成してみましょう。 https://deepage.net/features/pandas-pivot.html