概要
Pandasを使うときに出てくるNaN
をif文で判定する方法を紹介します。
準備
以下のcsvファイルがあると想定します。ここではtest.csvと名付けておきます。
name,age
田中,26
鈴木,41
佐藤,
pandasで読み込んでおきます。
import pandas as pd
df = read_csv('./test.csv')
print(df)
### 出力
# name age
# 0 田中 26.0
# 1 鈴木 41.0
# 2 佐藤 NaN
方法
pd.isnull() or pd.isna()
for i, r in df.iterrows():
if pd.isnull(r["age"]): #pd.isna(r["age"])でも同じ
print(r)
###出力
# name 佐藤
# age NaN
# Name: 2, dtype: object
math.isnan()
import math
for i, r in df.iterrows():
if math.isnan(r["age"]):
print(r)
###出力
# name 佐藤
# age NaN
# Name: 2, dtype: object
失敗例
なんも調べずにやった失敗例をご紹介します。。。
# そもそもNoneではないよね。。。
if r["age"] == None:
if r["age"] is None:
# あ、無理なんや。。。
import math
if r["age"] == math.nan:
if r["age"] is math.nan: