いっかくのデータサイエンティストをいく

1からプログラミングとデータサイエンスを独習したい

【統計学】分割表(クロス集計)(Python)

前回に引き続き、クロス集計。

有斐閣統計学」2章SECTION5では分割表として紹介されています。

用意するデータ

前回同様上記教科書の表2-6を参照します。 性別と禁煙するか否かのデータです。 教科書では喫煙は〇×ですが、ここでは1=喫煙, 0=喫煙しないとします。

import pandas as pd

data =pd.DataFrame({
  'sex' : ['女','男','男','女','男','女','女','男','男','男','女','女','男','女','女','男','女','女','女','女'],
  'smoke' : [1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0]
  })

クロス集計

pandasのcrosstabを利用します。

print(pd.crosstab(data['sex'], data['smoke']))
#smoke  0  1
#sex        
#女      8  4
#男      5  3

総計(各項目の合計)をつける場合はmargins=Trueとします。

print(pd.crosstab(data['sex'], data['smoke'], margins=True))
#smoke   0  1  All
#sex              
#女       8  4   12
#男       5  3    8
#All    13  7   20
'''
pythonのほうが楽ですね。