欠損値があるデータも表示させるまとめ参考ピボットテーブルとはエクセルで有名な機能の1つで馴染みの方も多いかもしれません。複雑なデータ構造を一目で分かりやすくする目的でよく使われるもので、クロス集計したものをまとめたものとなります。2つの要素間の相関が分かりやすく現れるので使いこなせると重宝するでしょう。男女間での科目ごとの平均点といったものをひと目で把握することができます。Pandasでも手軽にピボットテーブルを作成できるpivot_table関数が実装されています。そこで本記事ではpivot_table関数の使い方について解説します。pivot_table関数APIドキュメントまずはAPIドキュメントから見ていきます。ピボットテーブルを作成したいデータを選択します。(省略可能)初期値None集計を行う対象の列データを指定します。(省略可能)初期値None行ラベルとして使用するものを指定します。(省略可能)初期値None列ラベルとして使用するものを指定します。(省略可能)初期値np.meanデータを集計する手法を指定します。(省略可能)初期値None欠損値を補完する値を指定します。(省略可能)初期値FalseTrueの時列ごとの合計と行ごとの合計を表示します。(省略可能)初期値True全てのデータがNaN値である列データを集計に含まないようにします。(省略可能)初期値’All’小計を表示する行と列のラベル名を指定します。returns:ピボットテーブルとなったDataFrameが返されます引数を見てみると、色々と細かく指定できることが分かります。1つ1つの意味が理解できていればこれらの引数を指定してあげるだけで手軽にピボットテーブルを作成することが可能です。DataFrame.pivot_table関数も存在しています。data引数の有無だけの違いなので同一の関数と見なして問題ありません。ピボットテーブルを作成するとりあえずピボットテーブルを作成してみましょう。Kaggleのタイタニックのデータを使用します。ダウンロードはこちらの公式サイトからこのデータから寄港地(Embarked)と生存したかどうか(Survived)の値で振り分けたものでの平均年齢を表示させます。28.113184寄港地と生存したかどうかで分類した中での平均年齢を出すことができました。Cはフランスのシェルブール,Qはアイルランドのクイーンズタウン,Sはイギリスのサウサンプトンとなっています。Survivedの0は生き残れず、1は生き残れたことを表すラベルです。データを見てみると、生き残った人々の方が平均年齢が若く、クイーンズタウンから乗り込んだ人の間では顕著な差が現れたと読み取れます。複数要素を元に多層化させるインデックスラベルとカラムラベルに選択できるデータは複数選択することが可能です。その場合、MultiIndexとして表示されます。22.737705データの個数をカウントするでは次にこれの人数の内訳を見てみます。aggfunc='count'とすることで要素数を計算できます。columns]valuesを指定しないとこのようにインデックスとカラムラベルに選択されていないデータ全てを対象にピボットテーブルが作成されます。今回aggfunc='count'としているのでそれぞれのデータで有効なものがいくつあったかをカウントしています。今はAgeでの内訳をみたいので、values="Age"とすれば求めるピボットテーブルが作成されます。201列ごとと行ごとの合計を表示margins=Trueにすればそれぞれのデータの合計を表示させることができます。712デフォルトでは"All"と表示されます。ここの名前を変更することもできます。margins_nameで設定可能です。712複数の統計量を表示させる今の2つの値を並べて表示させます。aggfunc=["mean","count"]のようにリストに収めれば可能です。28.113184関数を使って統計処理を指定する他の関数を使って処理を指定することも可能です。例としてNumPyの関数を使ってみます。14.812722欠損値を補完fill_valueで欠損値します。以下のようなCabinとEmbarkedで仕分けた平均年齢を出してみます。columns]欠損値が目立っているのがわかると思います。ここの値を0で埋めてみます。fill_value=0で可能です。columns]欠損値があるデータも表示させるデフォルトではdropna=Trueとなっており全ての全ての行(列)において欠損値である列(行)データは表示されません。dorpna=Falseにするとその設定を解除できます。columns]形状をみてみると行数が増加していることがわかります。3)まとめ今回はpivot_table関数の使い方について解説しました。ピボットテーブルはデータの見通しを良くする上で非常に強力な表となってきます。agg_funcの指定の仕方で様々な数値データを呼び出すことが可能になるので、より使いこなしたい方はこの引数を使いこなせるように練習すると良いでしょう。documentationTweetDeepAgeではAIに関する厳選した内容を記事にしてお届けします。