[Python] 298 pandasのto_numeric関数における欠損値の扱い

pandasのto_numeric関数において空白がある場合はNaNに変換されて、他のデータは指定の数値型に変換されません。

このようなことはこれまで起こらなかったのですが、競争除外馬が出たおかげでコードの不備が発覚しました。

対策として欠損値を0で埋めてからto_numeric関数を使い、あとで0を空白にreplaceしました。指定の範囲で0を使わない場合に有効です。

空白やNaNを含む列の数値型変換ができないのは惜しいところです。

df['人気'] = df['人気'].fillna(0)
df['人気'] = pd.to_numeric(df['人気'],downcast='signed')

df['人気'] = df['人気'].replace(0,'')