文字列の中にあるいらない文字を取り除く


文字列の中にあるいらない文字を取り除く

Exploratoryではstr_removeという関数を使って、指定した文字を文字列データから簡単に取り除くことができます。

今回は、このstr_remove関数について紹介していきます。

str_remove関数の基本

str_remove関数には2つの引数があり、次のように記述されます。

str_remove(列名, "削除したい文字列")

1つ目の引数は削除したい文字が入っている列の名前です。

2つ目の引数は、削除したい文字列を指定します。例えば、"田中さん"という文字列データがあって、その中から"さん"という文字を削除したい場合は、"さん"と指定します。

しかし、ここで一つ注意が必要です。

もし、文字列データが "田中さん"、"鈴木さん"となっていた場合に、str_remove(name,"さん")とすると、"田中","鈴木さん"という値が返ってきて、"さん"という文字列が残ってしまいます。

これは、str_remove関数が1番目に出てきた指定された文字列のみを削除するからです。

このような場合には、str_remove_allという関数を使うことで、文字列データに含まれている「全て」の"さん"を削除することができます。

それでは、str_removeの具体的な使い方を見ていきましょう。

不要な文字列を取り除く

例えば、下記のように、文字列の中にカンマ( , )があって削除したいことがあります。

こういったときに、str_removeを使うことで指定した文字列を削除することができます。

列ヘッダメニューから、「テキストを操作」をクリックし、「ある文字列を取り除く」を選択します。

ダイアログが開き、既にstr_removeの関数と、1つ目の引数である列名が入力されています。

そのため、削除したい文字列の ","を 入力します。

完成したコードは下記のようになります。

str_remove(Item, ",")

実行すると、Itemのカンマ(,)がある文字列からカンマ(,)が取り除かれていることがわかります。

しかし、文字列に複数のカンマが含まれている場合(今回の場合はAnimals, live, nes)は、一つ目のカンマのみを削除した形(Animals live, nes)となりました。

これは、str_removeの基本でも説明したように、指定した文字列が複数ある場合は、文字列の最初の物のみ削除されるためです。

ではこの問題を対処するために、str_remove_allという関数を使ってみましょう

不要な文字列を全て取り除く

str_remove_allは指定した文字列が列の中に複数あった場合でも、全ての文字列を削除することができる関数です。

列ヘッダメニューから、「テキストを操作」をクリックし、「ある文字列を取り除く (全て)」を選択します。

ダイアログが開き、既にstr_remove_allの関数と、1つ目の引数である列名が入力されています。

そのため、削除したい文字列の ","を 入力します。

完成したコードは下記のようになります。

str_remove_all(Item, ",")

実行すると、カンマ(,)が複数あった場合でも、列内にある全てのカンマ(,)が取り除かれていることがわかります。

取り除きたい文字の候補を複数指定したい場合

もし、削除したい文字列の候補が複数ある場合は、論理和の記号である" | "(縦スラッシュ)を使って複数指定することができます。

例えば、文字列データから"A"もしくは"B"を削除したい場合は、str_remove(Column,"A|B")と指定することができます。

今回は、下記のように文字列の中にある", live, nes"と", other"を削除したいとします。

列ヘッダメニューから、「テキストを操作」をクリックし、「ある文字列を取り除く 」を選択します。

ダイアログが開き、既にstr_removeの関数と、1つ目の引数である列名が入力されています。

今回は取り除きたい文字列データが複数あるので、2つ目の引数に" | "を使って以下のように文字列を指定します。

str_remove(Item, ", live, nes|, other")

実行すると、", live, nes"と", other"という文字列を削除することができました。


Exploratoryデータ・アカデミー

データ分析に関してもっと知りたい、学びたいという方は、私達が提供しているトレーニングやセミナーに参加してみてください。

こちらのExploratoryデータ・アカデミーのページに詳細情報があります。

データを使ってより良い意思決定を行っていきたいと言う方は、ぜひこの機会に参加をご検討ください!