python_analytics

主にpythonやライブラリーを使ったデータ解析、機械学習、統計学などについて書いていきます

python pandas 集計処理(pivot_table関数)

pandas 集計処理(pivot_table関数)について

■pivot_table処理について
集約処理と横軸変換が同時にできる。

■pivot_tableでやること①
1つ目の引数に対象テーブル、index引数にデータの集合を表すキー値、columns引数にデータ要素の 種類を表すキー値、values引数にデータの要素の値となる対象の列を指定する。 また、aggfunc引数にvalues引数で指定した列値をデータの要素の値に変換する関数を指定。 aggfuncは集計方法を指す。

values:集計対象のDataFrameの変量名.aggfunc='count'の場合はダミーとして任意の変量名を与える.
index:行の変量
columns:列の変量
aggfunc:集計。sum、max、min、count、mean、medianが使える
fill_value:該当する列の値がない場合のデータの要素の値を指定できる
margins:集計行と集計列を付ける場合はTrueとする

import numpy as np
import pandas as pd
index ID セッション 閲覧時間
0 328667572 31 16 38 5
1 70373573 24 23 37 7
2 1839656582 12 20 28 6
4 1471882803 10 22 22 7
5 302325623 20 8 22 2

↓IDをグルーピングして、閲覧時間をカラム、値は要素の数をラムダでカウント、fill_valueで要素がなければ0に指定。

pd.pivot_table(sample,index="ID",columns="閲覧時間",values="セッション",aggfunc=lambda x: len(x),fill_value=0)
閲覧時間 0 1 2 3 4 5 6 7
ID
9460 0 0 0 0 1 0 1 0
72625 0 0 0 0 0 0 2 0
85657 0 0 0 0 1 1 1 0
86703 2 0 0 0 0 0 0 0
106015 1 0 0 0 0 1 1 0