▶ Python初学者向けにデータ分析に関する記事を書いています
はじめに
今回はデータフレームのある特定の列の文字列データを置き換える方法を基本から解説します。値を丸ごと置き換える場合はreplace()メソッドを使います。単語ではなく、「文字列の一部」を置き換えるにはどうすればよいでしょう。実はこれも簡単です。順にみていきましょう。
文字列を置き換える
サンプルデータ
今回はどうぶつたちの仕事内容の表をまとめたデータをサンプルとしましょう。以下のコードでサンプルデータを作成してください。
# ライブラリのインポート
import pandas as pd
# サンプルデータの作成
animals = ['らくだ','ねこ','らいおん','しまうま','ぱんだ']
age_list = [32,28,33,41,35]
work = ['戦略作成、データ分析','見積作成、営業支援','営業支援','データ分析','お菓子係']
df = pd.DataFrame({'なまえ':animals,'ねんれい':age_list,'しごと':work})
df
文字列のオブジェクトに対して置き換えをする
まずは値をまるごと置き換える方法を見ていきましょう。replace()メソッドを使います。以下の書式となります。
文字列のオブジェクトの中に指定した「置換したい値」があれば、「置換後の値」に置き換えます。回数は省略可能ですが、「置換したい値」が複数ある場合に何個目まで置き換えるかの回数を指定することができます。
やってみましょう。ここではサンプルデータを使わずに簡単な文字列に対して置き換えを試してみます。
# 文字列全体を置き換える
str1 = '戦略作成、データ分析'
str1.replace('戦略作成、データ分析', '営業支援')
ちゃんと置き換わりましたね。では、次に文字列の一部を置き換えてみましょう。「戦略作成」を「データ抽出」に置き換えてみましょう。
# 文字列の一部を置き換える
str1 = '戦略作成、データ分析'
str1.replace('戦略作成', 'データ抽出')
こちらもうまくいきました。次にデータフレームから列を抽出したSeriesに対して置き換えをしてみましょう。
Seriesに対して文字列の置き換えをする
サンプルデータの「しごと」の列を使って試してみましょう。まずは文字列全体の置き換えです。
# Seriesに対して文字列全体の置換
df['しごと'].str.replace('戦略作成、データ分析','営業支援')
「戦略作成、データ分析」という文字列が「営業支援」に置き換わってますね。
では、次に「戦略作成」を「データ抽出」に置き換えてみましょう。これはこれまでのように指定してもうまくいきません。
# Seriesに対して文字列の一部を置換
df['しごと'].replace('戦略作成','データ抽出')
予告通りですが、うまく置換できていません。実はSeriesにはstrという文字列処理を行う関数群があります。これを使って次のようにします。
# Seriesに対して文字列の一部を置換
df['しごと'].str.replace('戦略作成','データ抽出')
今度はうまくいきました。実はわたくしは最近までこれを知らなかったので、うまく置換できないな、とはまってました汗)
わかってしまえば簡単ですね。
まとめ
今回は置換を扱いました。文字列に対して置換をおこなうときと、Seriesに対して置換をおこなうときを比較してみました。文字列の一部を置換するときは注意するようにしましょう。
コメント