業務データはものによっては誤記や入力時のエラーなどで何度か置換をしてクレンジングする場合がありますが、pandasのDataFrameにはreplaceというメソッドを使用すると置換処理を行うことができます。
replace 値を置換する
基本的な置換
replaceメソッドで置換することができます。例えば、orangeがorangggとなっているデータがあった場合、以下のように置換して修正することができます。
import pandas as pd df = pd.DataFrame([['apple', 10], ['oranggg', 20], ['banana', 30]], columns=['name', 'price']) df.replace('oranggg', 'orange') # name price # 0 apple 10 # 1 orange 20 # 2 banana 30
正規表現による置換
また、引数にregex=Trueを指定することで正規表現を使用することもできます。先ほどの置換を以下のように書くこともできます。
df.replace('.*ggg.*', 'orange', regex=True) # name price # 0 apple 10 # 1 orange 20 # 2 banana 30 #
欠損値の0埋め
よく使うのが欠損値の置換です。NaNを0で埋めたい場合は以下のようにnp.NaNで置換します。
import pandas as pd import numpy as np df = pd.DataFrame([[1, 10], [None, 20], [3, None]], columns=['col1', 'col2']) df.replace(np.NaN, 0) # col1 col2 # 0 1.0 10.0 # 1 0.0 20.0 # 2 3.0 0.0