Pynote

Python、機械学習、画像処理について

pandas - 欠損値 (NaN) を扱う関数 まとめ

一覧

DataFrame Series 説明
DataFrame.count Series.count NaN でない値を数える。
DataFrame.isna Series.isna NaN かどうかを判定する。
DataFrame.notna Series.notna NaN でないかどうかを判定する。
DataFrame.dropna Series.dropna NaN の要素を削除する。
DataFrame.fillna Series.fillna NaN の要素を指定した値で置換する。
DataFrame.interpolate Series.interpolate NaN の要素を補完する。

count: NaN でない値を数える。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 2, 3, np.nan])

print(s.count())  # 3

isna: NaN かどうかを判定する。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 2, 3, np.nan])

print(s.isna())
# 0    False
# 1     True
# 2    False
# 3    False
# 4     True
# dtype: bool

notna: NaN でないかどうかを判定する。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 2, 3, np.nan])

print(s.notna())
# 0     True
# 1    False
# 2     True
# 3     True
# 4    False
# dtype: bool

dropna: NaN の要素を削除する。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 2, 3, np.nan])

s2 = s.dropna()
print(s2)
# 0    1.0
# 2    2.0
# 3    3.0
# dtype: float64

fillna: NaN の要素を指定した値で置換する。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 2, 3, np.nan])

s2 = s.fillna(-1)
print(s2)
# 0    1.0
# 1   -1.0
# 2    2.0
# 3    3.0
# 4   -1.0
# dtype: float64

interpolate: NaN の要素を補完する。

import numpy as np
import pandas as pd

s = pd.Series([1, np.nan, 3, 4, np.nan])

s2 = s.interpolate()
print(s2)
# 0    1.0
# 1    2.0
# 2    3.0
# 3    4.0
# 4    4.0
# dtype: float64