0
0

More than 1 year has passed since last update.

データクレンジングをしてみよう! 欠損値を削除する方法

Last updated at Posted at 2022-08-13

1.データクレンジングとは

データクレンジングとは、破損したデータ、不正確なデータ、無関係のデータを特定して解決する手法を指します。 データ処理におけるこの重要な段階は、データスクラビングと呼ばれます。

2.データクレンジングの必要性

1番でも説明した通り、無関係のデータなどがあった場合、正しい予測結果を得られなくなることや、回帰分析においては、強い相関がみられる2変数のデータなどがある場合、※多重共線性などが発生してしまったりと、とても都合がよろしくありません。
分析業務においてもデータクレンジングはほどんどの業務を占めており、実際企業が保有しているデータは汚れているデータがほとんどなどでとても欠かせない作業になります。

3.実際にデータを見てみよう

#必要なライブラリのインストール
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
len(df)
# 637351
df.isnull().sum()

スクリーンショット (36).png

※修正:0のデータは欠損値がないということなので、消す必要がありません。

データフレームの行が63751個に対して、何個か欠損値が63751個あります
つまり、そのカラムにはなにもデータが入っていないことになります。

4.欠損値を削除しよう

カラムの中に完全にデータが入っていない場合、削除する必要があります。
ここでは欠損値をまとめて消す方法について説明していきます。
では実際にコードを書いていきます

non_null_list = []

for col in df.columns: #カラム名を順番に取り出す
    non_null = df[col].count() #あるカラムのデータの個数をカウントします
    if non_null == 0 : #もし、カウント数が0の場合
        non_null_list.append(col) #そのカラム名を抽出し、空のリストに順に加える

non_null_list
['地域', '土地の形状', '間口', '延床面積(㎡)', '前面道路:方位', '前面道路:種類', '前面道路:幅員(m)']        

完全に欠損しているカラム名が出ました

次に、作成したリストを活用し、欠損値データをまとめて消していくよ

df = df.drop(non_null_list , axis=1)
# データが入っていないカラムを一斉に削除する。axis=0の場合はすべて消えてしまう。

5.まとめ

これで無事に完全に欠損があるカラムを消すことができました。
今回行った処理はあくまでもデータクレンジングの一つに過ぎませんので、また別の手法を解説します。
それでは!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0