Python によるクロス集計表

pandas.pivot_table() コマンドを使い、クロス集計表を作成する。

Python を起動し、pandas を import する。

import pandas as pd

通常は Excel 等で作成した CSV ファイルを pandas に読み込んで分析する。しかし、ここでは便宜的に以下の簡単なデータフレームを作成し、data という変数に格納しておく。

data = pd.DataFrame({"術者":["太郎","花子","太郎","花子","太郎","花子"], "手術方法":["内視鏡","開腹","開腹","内視鏡","内視鏡","内視鏡"], "手術時間":[60,50,100,90,30,40], "出血量":[15,25,35,55,45,25]})

data の内容を確認する。

data

術者と手術方法で、手術時間の平均がどう異なるかを集計する。

pd.pivot_table(data, values = "手術時間", index = "術者", columns = "手術方法", aggfunc = "mean")

手術時間だけでなく、出血量の平均も集計する。

pd.pivot_table(data, values = ["手術時間", "出血量"], index = "術者", columns = "手術方法", aggfunc = "mean")

aggfunc は以下のように変えられる。
mean: 平均
count: データの個数
sum: 合計
var: 分散
std: 標準偏差
max: 最大値
min: 最小値
median: 中央値

margins = True を付け加えると、小計を表示する。また、aggfunc = “count” とすることで件数を表示する通常のクロス集計になる。

pd.pivot_table(data,values = "手術時間", index = "術者", columns = "手術方法", aggfunc = "count", margins = True)