kharuka2016のブログ

日々の出来事を書き留めておくブログ

pandas-欠損値の扱い-

入門 Python 3

入門 Python 3

目次

前提条件

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

NumPyのインストール

手順概要

1.コマンドプロンプトでIPython Notebookを起動します。

2.欠損値の扱い

手順

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2.欠損値の扱い

2.1.numpy、panadasとpandasからSeriesとDataFrameをインポートします。

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

2.2.今回はnanをよく使うので、numpyからnanをインポートします。Seriesを作成します。

from numpy import nan
data=Series(['one','two',nan,'four'])
data

Out:

0     one
1     two
2     NaN
3    four
dtype: object

2.3.値がnull(nan)かどうか調べます。

data.isnull()

Out:

0    False
1    False
2     True
3    False
dtype: bool

f:id:kharuka2016:20170815144258p:plain

2.4.null値を削除します。

data.dropna()

Out:

0     one
1     two
3    four
dtype: object

2.5.DataFrameを作成します。

dframe=DataFrame([[1,2,3],[nan,5,6],[7,nan,9],[nan,nan,nan]])
dframe

Out:

   0  1  2
0  1  2  3
1  NaN 5  6
2  7  NaN 9
3  NaN NaN NaN

2.6.null値がある行を削除します。

dframe.dropna()

Out:

   0  1  2
0  1  2  3

f:id:kharuka2016:20170815144304p:plain

2.7.列の値がすべてnullの行の場合、行を削除するように指定できます。

dframe.dropna(how='all')

Out:

   0  1  2
0  1  2  3
1  NaN 5  6
2  7  NaN 9

2.8.null値がある列を削除するように指定できます。defaultではaxis=0となっており行を指定しています。

dframe.dropna(axis=1)

Out:

0
1
2
3

2.9.新たにDataFrameを作成します。

dframe2=DataFrame([[1,2,3,nan],[2,nan,5,6],[nan,7,nan,9],[1,nan,nan,nan]])
dframe2

Out:

0 1  2  3  
0  1  2  3  NaN
1  2  NaN 5  6
2  NaN 7  NaN 9
3  1  NaN NaN NaN

f:id:kharuka2016:20170815144309p:plain

2.10.列の値が2つ以上ない行がある場合、行を削除します。

dframe2.dropna(thresh=2)

Out:

   0  1  2  3
0  1  2  3  NaN
1  2  NaN 5  6
2  NaN 7  NaN 9

2.11.列の値が3つ以上ない行がある場合、行を削除します。

dframe2.dropna(thresh=3)

Out:

   0  1  2  3
0  1  2  3  NaN
1  2  NaN 5  6

f:id:kharuka2016:20170815144314p:plain

2.12.nanを1に置き換えます。

dframe2.fillna(1)

Out:

   0  1  2  3
0  1  2  3  1
1  2  1  5  6
2  1  7  1  9
3  1  1  1  1

f:id:kharuka2016:20170815144320p:plain

2.13.列ごとにnanを置き換える値を指定できます。

dframe2.fillna({0:0,1:1,2:2,3:3})

Out:

0 1  2  3  
0  1  2  3  3
1  2  1  5  6
2  0  7  2  9
3  1  1  2  3

f:id:kharuka2016:20170815144324p:plain

2.14.inplace=Trueを指定することで参照ではなく、参照元を置換します。

dframe2.fillna(0, inplace=True)
dframe2

Out:

   0  1  2  3
0  1  2  3  0
1  2  0  5  6
2  0  7  0  9
3  1  0  0  0

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com

Pythonスタートブック

Pythonスタートブック