データ分析でよく問題になるのが欠損値の処理です。ここで以下の説明のためにわざと欠損値を入れてみます。
F列にNoneを代入したはずなのですが、一覧を表示するとNaNとして表示されます。これはpandasでは、デフォルトでは欠損値は「NaN」として扱われることになっているからです。
「欠損値を無視してデータを分析したい」ことがよくあると思いますが、それは「dropna」メソッドによって簡単にできます。
また、欠損値を特定の値で書き換えたいこともあると思います。そういう場合は「fillna」メソッドを使います。ここでは欠損値に0を代入しました。
dropnaもfillnaも破壊的な操作ではない(もとのdfの値を書き換えない)ので注意が必要です。実際には戻り値を他の変数に入れて使うことが多いです。ここでdfの中身を表示すると元から変わっていないことが分かります。
次のように縦に集計することもできます。
「mean」メソッドでは平均値を、「std」メソッドでは標準偏差を求めました。
「apply」メソッドを使うと、任意の関数を適用することもできます。次の例では、各列について最大値と最小値の差を計算します。
次に、グループ化の例を示すために、さらに一列を追加します。
これをG列の値をキーとしてグループ化し集計してみます。これはSQLの「GROUP BY」に相当します。
ここでは、sum()で合計を計算していますが、他の集計も同様にできます。また、グループ化のキーはインデックスとして扱われています。
キーをインデックスとして扱いたくないときは、「as_index」フラグを利用します。
今度は平均値を計算しました。G列がインデックスではなく通常の列として扱われ、インデックスは別途連番が付与されています。
Copyright © ITmedia, Inc. All Rights Reserved.