【Pandas】データのクリーニングをする

機械学習やディープラーニング、データの可視化をしたいときに、データの中に欠損値があってうまく動かない時があります。

そんな時には、データのクリーニングや前処理を行う必要があります。

この記事ではその方法をご紹介します。

スポンサーリンク

使用するデータ

サンプルデータとして映画のデータを読み込み、カラム名をみてみます。

映画のタイトル、俳優の評価、映画の評価、国、公開年、など28のカラムから構成されるデータです。

欠損地の数を数える

各カラムにおける欠損値の合計値は、isna().sum()を使って計算できます。

各列の合計値を出すには以下のようにします。

欠損値が1つでも含まれる行を消す

1つでもNaNが含まれる行を消すには以下のようにします。

削除前と削除後の行の数をみてみます。

約1300行が削除されました。

欠損値の置き換え

消すのではなく特定の文字や数値に置き換えるには以下のようにします。

行数は変わりませんが欠損値が0に置き換わります。

ビニング

ビニングとは、隣り合うデータや画素を一纏めにすることです。

例えば、0~4の間の評価だった場合には一纏めに「低評価」としてしまって良い場合もあります。

映画のタイトルとスコアをみてみましょう。

このスコアを、だめ(no way)、まぁまぁ(moderate)、良い(good)の三段階の評価にまとめたいと思います。

pandasのcut()を使いましょう。

1番右の列に三段階の評価を表すラベルが追加されました。

おわり。

参考

https://towardsdatascience.com/data-handling-using-pandas-cleaning-and-processing-3aa657dc9418