使うのはpivot_table関数

 

使うデータ(data)
まとめる項目(index)
分割する項目(columns)
計算する値(values)
集計関数(aggfunc)


最低限、必要な引数は下の3つ
・data(第一引数): 元データのpandas.DataFrameオブジェクトを指定。
・index: 元データの列名を指定。結果の行見出しとなる。
・columns: 元データの列名を指定。結果の列見出しとなる。
引数index, columnsに指定していない列の平均値が結果として算出されるが、型が数値でない列は除外されます。
結果の値の算出方法を指定: 引数aggfunc
デフォルトでは平均値が算出されるが、引数aggfuncに関数を指定することでほかの方法で値を算出することが可能。

 

aggfuncでは集計関数、つまり計算する方法を指定します

記載がない場合は「平均:np.mean」が採用されます

  • mean:平均
  • sum:合計
  • max:最大値
  • min:最小値
  • count:件数


import pandas as pd
# 本サイトから直接データを取得
df = pd.read_html('https://smart-hint.com/student-data/')[0]
df.head()
df.pivot_table(index='class', columns='sex', values='english',
               margins=True, margins_name='総計')


インデックスの解除
df.pivot_table(index=['sex','club_athletic'],
               values='english').reset_index()

「0.1.2.3…」と数字の連番がインデックスとして追加されます