PythonのPandasライブラリを使用して、DataFrame内のNoneを空文字に置換する方法について解説します。
DataFrameの作成
まずは、以下のようなDataFrameを作成します。
import pandas as pd
from datetime import datetime as dt
import numpy as np
dates = [dt(2014, 1, 2, 2), dt(2014, 1, 2, 3), dt(2014, 1, 2, 4), None]
strings1 = ['A', 'B', None, 'C']
strings2 = [None, 'B', 'C', 'C']
strings3 = ['A', 'B', 'C', None]
vals = [1., 2., np.nan, 4.]
df = pd.DataFrame(dict(zip(['A', 'B', 'C', 'D', 'E'], [strings1, dates, strings2, strings3, vals])))
このDataFrameでは、いくつかのセルにNoneが含まれています。
Noneを空文字に置換
次に、DataFrame内のNoneを空文字に置換します。そのためには、fillna
メソッドを使用します。
df.fillna("", inplace=True)
このコードにより、DataFrame内のすべてのNoneが空文字に置換されます。
ただし、この方法では、数値のNaNも空文字に置換されてしまいます。数値のNaNを保持したまま、テキスト列のNoneだけを空文字に置換したい場合は、以下のようにします。
values = {"A": "", "C": "", "D": ""}
df.fillna(value=values, inplace=True)
このコードでは、列”A”、”C”、”D”のNoneだけが空文字に置換され、他の列のNaNはそのまま保持されます。
以上が、PythonのPandasライブラリを使用して、DataFrame内のNoneを空文字に置換する方法です。この方法を覚えておくと、データの前処理がよりスムーズに行えます。