
はじめに
データ分析・データサイエンスの初心者・初学者に最初に覚えて欲しいPythonを使った便利な変換がいくつかあります。
今回はその中の一つである、データ分析でよく使う文字列を置換する(別の文字列に変える又は数字を置換する)方法を紹介します。
読み終えたあとには、しっかりとその方法が身についていると思います。
さっそく、データサイエンス100本ノック(構造化データ加工編)のデータセットを用いてみましょう。
データサイエンス100本ノック(構造化データ加工編)を知りたい方は下記のブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会
Pythonのreplece()
Google Colaboratoryで動かしてみます。
Google Colaboratoryについては知りたい方は、以下のブログ記事を参考にしてください。
>>Google Colaboratoryとは? いつできた? mount、ファイルの読み込み等の使い方
>>Google Colaboratoryよく使う便利なショートカットキー

これは年号を表したリストですが。‘M10’を‘M12’にしてみます。
それには、replace(‘置換前文字列’,’置換後文字列’)を使用します。
wa = wa.replace('M10','M12')

さっそくやってみたところ、「‘list’ object has no attribute ‘replace’」というエラーがでました。これは、repleceを使うには、単独の文字列だけでのみ使えて、リストには使えないことを表しています。
例えば、これが、単独の場合には置換できます。

そこで、リストの場合には、join()を用いて、リストの文字列を一つの文字列に連結してから、置換する方法があります。
wa_join = ",".join(wa)
wa_join

そして、置換します。
wa_join.replace('M10','M12')

最後に、一つの文字列になった‘M12,T25,S45,H31,R5’を元の’M12, ‘T25’, ‘S45’, ‘H31’, ‘R5’にします。それには、split()を使います。今回は、,で区切るので、引数には、‘,’を記載します。
wa_split = wa_join.split(',')

注意:
Pythonのreplece()は数字には使用できません。
しかし、以下で書きますのようにPandasのデータフレーム内であれば、replece()は数字にも適用できます!
Pandasデータフレームでreplece
次のような、データフレームを用意しました。

まず、国語100点のデータを20点に変えます。
df = df.replace(100,20)

なお、ここで、replace(20,100)とすると、二つの20点が100点に置換されます。

では、国語の20点だけを100点に変えたい場合はどうすればいいでしょうか?
その場合は、{ }で指定します。
df_2 = df.replace({'国語':20},100)

ちなみに、複数のものを同時に置換もできます。例えば、上記の算数50点を60点に、国語10点を40点にします。[ ]を用います。
df_2 = df.replace([50,10],[60,40])

最後に、算数50点を欠損値に変えたい場合にはどうすればよいでしょうか?
その場合には、numpyを用いて、np.nanを引数に用います。
import numpy as np
df = df.replace(50,np.nan)

これで、欠損値を表すNaNに置換されました。
データ分析入門・データサイエンス初心者・初学者向けにデータ分析でよく使うPythonの基本と実例をまとめましたので、あわせてご覧ください。
>>【データ分析初心者】Python構文~if文、format記法とf文字列
>>【データ分析初心者】Python構文~for文、range関数、zip関数、enumerate関数~
>>【データ分析初心者】Python構文~無名関数lambda式、内包表記、map関数~
>>【データ分析初心者】Pandas~loc[]、iloc[]、スライス、drop()、isin()~
>>【データ分析初心者】Matplotlib、Seabornーscatter()、hist()、countplot() 、barplot()
書籍や動画でデータ分析を学びたい方へ
機械学習やデータサイエンスを独学で学びたい方のために、ブログ記事をまとめてみました。
書籍、動画などなど、厳選したオススメの方法をまとめています。
興味がある方はご覧ください。