【データ分析初心者】Pythonを使って、文字列の変換(別の文字列に変える)を行う

※アフィリエイト広告を利用しています。

はじめに

データ分析データサイエンスの初心者初学者に最初に覚えて欲しいPythonを使った便利な変換がいくつかあります。

今回はその中の一つである、データ分析でよく使う文字列を置換する(別の文字列に変える又は数字を置換する)方法を紹介します。

読み終えたあとには、しっかりとその方法が身についていると思います。

さっそく、データサイエンス100本ノック(構造化データ加工編)のデータセットを用いてみましょう。

データサイエンス100本ノック(構造化データ加工編)を知りたい方は下記のブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会

Pythonのreplece()

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に置換されました。

書籍や動画でデータ分析を学びたい方へ

機械学習データサイエンス独学で学びたい方のために、ブログ記事まとめてみました。

書籍、動画などなど、厳選したオススメの方法をまとめています。

興味がある方はご覧ください。