pandasTweetpandas.Seriesのmap()は、引数に関数を渡すことでpandas.Seriesの各要素に関数を適用するメソッド。applymap()の引数には辞書型dictを指定することもできて、その場合は要素の置換になる。要素の置換を行うメソッドにはreplace()があるが、pandas.Seriesまたはpandas.DataFrameの列(=pandas.Series)のすべての要素を別の値に置換するのであれば、map()のほうが高速になる場合が多い。質的データを量的データに変換について説明する。例として以下のデータを使用する。pandas_map_replace.pyサンプルのcsvファイルはコチラ。value})を指定すると、keyと一致する要素がvalueに置き換えられる。pandas_map_replace.pyreplace()の引数にも辞書を指定することが可能。pandas.Seriesのすべての要素に対して置換が行われる場合はreplace()と同様の結果となる。pandas_map_replace.py結果が異なるのは、辞書のkeyがpandas.Seriesのすべての要素の値を網羅していない場合。map()では置換されない値がNaNとなってしまう。replace()では元の値のまま。pandas_map_replace.pymap()とupdate()を組み合わせると置換されない要素を元の値のままにすることができる。update()を使うと元のオブジェクトが変更され、replace()で引数inplaceをTrueとするのと同じ動作となる。Notebookの%timeitで簡易的な速度比較を行った。すべての要素に対して置換が行われる場合はmap()のほうがreplace()よりも高速。pandas_map_replace_timeit.pyupdate()を組み合わせるとmap()よりreplace()のほうが高速。pandas_map_replace_timeit.pyupdate()を使ってもmap()のほうが高速という報告もあり、元のpandas.Seriesのサイズ、置換を指定する辞書のサイズによって結果が異なる。Overflow特にreplace()は置換を指定する辞書のサイズによる変化が大きい。pandas_map_replace_timeit.py小さいデータの置換処理を一度するだけであればどちらでも大差ないが、巨大なデータに対して同じような置換処理を繰り返し行うといった場合は速度が効いてくるので、実際に置換を行う条件でmap()とreplace()を試してみてからどちらを使うか決定するといいかもしれない。すべての要素を別の値に置換するのであれば、map()のほうが高速になる場合が多い。速度の計測については以下の記事を参照。質的データを量的データに変換map()を使う例として実際によくあるのが、質的データ(カテゴリデータ)の文字列を量的データの数値に変換する場合。1の数値に置き換える。pandas_map_replace.pymap()には元のオブジェクトを更新する引数inplaceがないので、pandas.DataFrameの列をmap()で置換する場合は、元の列に代入する。pandas_map_replace.pyなお、質的データ(カテゴリ変数)をダミー変数に変換するにはpandas.get_dummies()という関数がある。詳細は以下の記事を参照。