0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者のためのpandas基礎③欠損値処理

Last updated at Posted at 2020-07-24

#pandasとは
Pythonにて、構造化データ(テーブル型のデータ)を扱うためのライブラリです。ファイルの読み込みやその後の加工・抽出処理などを簡単に行うことができ(SQL的な感覚で行うことができ)、機械学習などのデータの前処理で必須となるライブラリです。
他項目への目次はこちらになります。

#ライブラリインポート
pandasにpdという名前をつけてimportします。

import pandas as pd

欠損値確認

欠損値を処理する前にデータに含まれる欠損値を確認する方法です。以後のコードは、データフレームは変数dataframeとして定義していることを前提とします。

dataframe.isnull().sum()

行操作

欠損値を1つでも含む行を削除する

dataframe.dropna(inplace = True)

dropが非破壊関数のため、inplace=Trueとしないと、元のデータフレームの書き換えが行われません。
代入をつかう場合は、下記のような書き方でもOKです。(以後のサンプルコードも同様です)

dataframe = dataframe.dropna()

すべてが欠損値の行を削除する

dataframe = dataframe.dropna(how = 'all')

特定の列が欠損値の行を削除する

例として「column1」が欠損値の行を削除します。

dataframe = dataframe.dropna(subset = ['column1'])

allとの組合せも可能です。例として「column1」と「column2」が共に欠損値の行を削除します。

dataframe = dataframe.dropna(subset = ['column1','column1'], how = 'all')

#列操作
列の場合は基本的には行と同じですが、axix = 1をしています。axis='columns'でも同じ処理となります。
欠損値を1つでも含む列をすべて削除する場合は下記となります。

dataframe = dataframe.dropna(axix = 1)
dataframe = dataframe.dropna(axis='columns')

すべてが欠損値の列を削除する場合は下記となります。

dataframe = dataframe.dropna(how = 'all',axis='columns')

#欠損値を埋める
欠損値に値を埋めたい場合はfillna()を使います。

##すべての欠損値に同じ値を埋める
すべての欠損値にゼロを埋める場合は下記となります。

dataframe = dataframe.fillna(0)

##列毎に別の欠損値を埋める。
例として「column1」に1を「column2」に2を埋めます。

dataframe = dataframe.fillna({'column1':1,'column2':2})

#最後に
初心者にもわかるように、Pythonで機械学習を実施する際の必要な知識を簡便に記事としてまとめております。
目次はこちらになりますので、他の記事も参考にして頂けると幸いです。

0
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?