前回はpandasでcvsファイルを読み込みました。

そのデータを使って、簡単なデータの前処理を行ってきましょう。
前処理とは、データ分析するためにデータの形や数値を整えることです。
具体的なコードと、その出力をみていきましょう。前処理はデータ分析の目的によって、さまざまな方法があります。今回は、使うことが多い前処理を解説していきます。csvファイルを同じように作って、コードをコピーして自分でも確認してみて下さい。
環境構築は、


それは、やっていきましょう。
データの読み込み
import pandas as pd df = pd.read_csv('goods.csv',encoding='SHIFT-JIS') df
列の削除
データフレームにある ‘id’ という名前の列は、データの順番なので、分析に必要のない情報です。
必要のないデータは削除します。
df = df.drop(['id'],axis=1) df
drop は削除するためのコードです。何を削除するかは、[‘id’] で指定します。
さらに、axis=1 とすることで、列を指定しています。
データの形を確認する
データの列に liked があります。これは、グッズ好きかどうかを示しています(0:グッズ好きでない、1:グッズ好き)
つまり、0と1は数値というより、区別しているだけ、ということです。
なので、小数点があり数値のデータでは、正しくないことになります。
どうするかというと、データのタイプを変更します。
df.liked = df.liked.astype('object') df
次は、数値データ(今回は price )の基本統計量を確認します。
df.describe()
出力:
たった一行のコードで、基本統計量を出力してくれます。
欠損値を確認する
次は、データに欠損があるかを確認してみましょう。
データフレーム上で、NaNと表示されていのが、欠損を表しています。
df.isnull().sum()
出力:
goodsに2つ
priceに2つ
likedに1つ、欠損があることを表しています。
欠損値に対処する
データの欠損は、データ分析しにくい場合があるので、欠損を削除してみましょう。
df_na = df.dropna() df_na
dropnaで、欠損(na)を削除(drop)する、という意味のコードです。
NaN があった行が削除されました。
欠損値があるときの対処は、削除のみではありません。
欠損値の補完を行うときもあります。
補完とは、欠損値に適当な数値を入れるということです。
df.price = df.price.fillna(df.price.mean()) df
出力:
NaN に数値が入りました。入った数値の意味をみていきましょう。
コードは、df.price.mean() で、データフレーム(df)の列にある price の平均値(mean())を表します。
それを、データフレーム(df)の price の欠損値に入れ込む(fillna)
入れ込んだデータを、データフレーム(df)の price に反映させる(df.price = )ことを表しています。
では、price の平均値を確認してみましょう。
df.price.mean()
出力:
27500.0
priceの欠損値(NaN)に入った数値と同じですね。
欠損値(NaN)に平均値である 27500 が補完されたことが確認できました。
つぎに、文字列である goods の欠損値を補完してみましょう。
文字列の場合は、最も多い文字にすることが多いです。
最も多い数値(最頻値)は、mode() で出力されます。
試しに見てみましょう。
df.goods.mode()
出力:
0 マウス
dtype: object
マウス、と出力されましたが、その他の情報が、必要ありません。
なので、一番上の情報が知りたい場合は、一番上( [0] )をしてします。
df.goods.mode()[0]
出力:
‘マウス’
これで、必要な情報のみを得ることが出来ました。
ではこれを、欠損値に補完してみます。
df.goods=df.goods.fillna(df.goods.mode()[0]) df
最後に、liked にも最頻値を入れましょう。
df.liked = df.liked.fillna(df.liked.mode()[0]) df
mode() では、小数点がついてしまいます。
気持ちが悪いので、あらためて0か1の数値にしましょう。
df.liked = df.liked.astype('object') df
今回は、簡単ですが、データの前処理として、きれいなデータにしていく方法を学びました。
まとめ(前処理)
- 必要のないデータを削除する
- データの形を確認する
- 欠損値を確認する
- 欠損値に対して処理する(削除 or 補完)
コメント