Python カテゴリ別に平均や標準偏差などの統計量を算出する「pandasのpivot_table」

 本記事では、表題の雛形コードを載せました。下図は、機械学習で有名なタイタニックのデータセットです。これを例に説明します。

f:id:HK29:20211205233548p:plain

 例えば、インデックスにPclass(チケットクラス)、列名にSex(性別)にして、平均値や標準偏差を算出して表にしたい場合に下図のようにできます。

f:id:HK29:20211205234007p:plain

一旦、csvファイルに保存して、読み込めば下図のようにして、グラフ化なども容易にできます。

f:id:HK29:20211205234452p:plain

■本プログラム

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import pandas as pd
import numpy as np

# csvファイルを読み込む
df = pd.read_csv('train.csv')
df


# In[2]:


# カテゴリ別に統計量を算出する
df2 = df.pivot_table(index = 'Pclass',
                    values = 'Age',
                    columns = 'Sex',
                    margins = False,
                    aggfunc = [np.mean]) #, np.std, np.min, np.max])
df2.to_csv('statistics.csv')
df2


# In[3]:


file_path = 'statistics.csv'
DF = pd.read_csv(
    file_path, # ファイルパス
    #names = column_names, # 列名を指定
    #na_values ='?', # ?は欠損値として読み込む
    #comment = '\t', # TAB以降右はスキップ 
    sep = ',', # 空白行を区切りとする
    #skipinitialspace = True, # カンマの後の空白をスキップ  
    skiprows = [0, 2] # 飛ばしたい行をリストで指定 
    #header = 0, # ヘッダー行を指定
    #nrows = 5, # 読み込む行数
    #encoding = 'utf-8', # 'utf-8' 'shift-jis' 'cp932'
) 
DF


# In[ ]:

以上

<広告>