機械学習のためのデータ準備 CSVデータの読み込みとデータの確認と欠損値の確認

機械学習のためのデータ準備 CSVデータの読み込みとデータの確認と欠損値の確認

機械学習をする場合にまずデータを準備しますが、csv形式でデータが準備される場合も多いと思います。
データの確認や加工が簡単になるpandas形式で読み込むのがスタンダードになります。

必要なライブラリをまず読み込んでおきます。

import numpy as np
import scipy as sp
from pandas import Series, DataFrame
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib as mlp
import seaborn as sns

import sklearn

CSV形式のファイルをpandas形式で読み込むには .read_csv() 関数を使います。
ただしこれはカンマ区切りのcsv場合に使用します。タブ区切りの場合は read_table() を使用します。

mydata = pd.read_csv('sample.csv')

読み込んだデータの確認はhead()を使うと良いです。引数に表示する行数を指定できます。
省略した場合は5行表示されます。

mydata.head()

行数と列数を確認する場合はshapeを使用します。

mydata.shape

欠損値の確認

欠損の有無を確認する為にはisnull関数を使用します。
isnull関数のあとにany関数を付け加えると、1つ以上欠損値を含んでいる場合にTrueと表示されます。

mydata.isnull().any()

欠損値の件数を知りたい場合はisnull関数のあとにsum関数を付け加えます。

mydata.isnull().sum()

特定の値(例えば?)が入っているかどうかの確認は「isin関数」を使います。

mydata.isin(['?']).sum()

欠損値の処理方法

欠損値に何らかの値を入れる場合は fillna() を使います。引数を0にすると欠損値に0が代入されます。

欠損値のある行を削除するには dropna関数を使用します。

mydata.dropna()

特定の列に欠損値がある場合、対象の行を削除したい時はdropna関数の引数にsubsetに列名を記述します。

mydata.dropna(subset=["age"])