コンテンツにスキップ

文字の置換

列の中の文字を置き換えます。不要な記号を消す、書き方を揃える、見つけた部分だけを別の文字にする、といった使い方をします。

入出力

ポート内容
入力データデータ
出力データデータ

Spark エンジンでも動きます。行の数は変わりません。

設定項目

フォームの見出しの並び — 「詳細設定」 → 「検索対象の設定」 → 「置換後文字の設定」。条件によって出ない見出しもあります。

結果の挿入先を設定
新規列に挿入(既定)か既存列に上書き。選んだ方で、次に出る項目が変わります。
新規列名を入力必須
「新規列に挿入」のときに出ます。結果を入れる新しい列の名前。
文字列を選択必須
「既存列に上書き」のときに出ます。この 1 項目が、置換する列と結果の書き戻し先を兼ねます。
処理対象列を選択必須
「新規列に挿入」のときに出ます。置換する列。文字列・日付・日付時間・時間の列が選べます。
処理タイプを選択
指定文字を置換(既定)か条件に一致した文字を置換。以降の項目がまるごと入れ替わります。

結果の列は文字列になります。 日付や時間の列を選んだ場合も、置換後は文字列です。

指定文字を置換

置き換えたい文字をそのまま書きます。置換ルールはいくつでも足せ、上から順に適用されます。

正規表現で指定する
off(既定)なら置換文字を入力(複数可)、on なら正規表現を入力が出ます。
置換文字を入力(複数可)必須
置き換えたい文字。カンマで区切ると複数まとめて指定できます。カンマそのものを置き換えたいときは、, だけを入れます。
正規表現を入力必須
「正規表現で指定する」が on のときに出ます。こちらはカンマで区切られません。
置換文字以外を置換する
「正規表現で指定する」が off のときだけ出ます。指定した文字以外をまとめて置き換えます。
置換後を入力(入力なしで空文字)
置き換えたあとの文字。空のままにすると、その文字が消えます。

条件に一致した文字を置換

「数字の並び」「英字の並び」のように、形で見つけて置き換えます。

検索条件
目印になる文字を指定するまとまりです。いくつでも足せますが、同じ条件タイプを 2 つ置くことはできません。
条件タイプを選択
「検索条件」の中にあります。から始まる(既定)/ で終わる / を含む / が先頭の / が末尾の。
文字カテゴリを指定する(検索条件の中)
目印を具体的な文字ではなく数字 / 英字 / 日本語文字 / 記号 / スペースの種類で指定します。off なら文字を直接入力します(カンマ区切りで複数可)。
開始文字を置換対象に含める
「検索条件」の中にあります。既定は on。目印にした文字そのものも置き換えるかどうか。条件タイプによって「終了文字」「先頭文字」「末尾文字」と名前が変わります。「を含む」のときは出ません。
文字カテゴリを指定する(条件のまとまりの外)
置き換える中身の形を決めます。on にすると連続する文字の種類を選択が出て、連続する数字(既定)/ 連続する数字+英字 / 連続する文字を指定するが選べます。「連続する文字を指定する」を選ぶと文字カテゴリを選択が出て、数字 / 英字 / 日本語文字 / 記号 / スペースから選びます。off のままだと「中身」は「どんな文字でもよい」になります。この状態で条件タイプだけを指定すると、目印から行末(または行頭から目印)までがまるごと対象になります。
文字数を指定する
on にすると数値を入力が出て、その文字数ちょうどの並びだけが対象になります。条件タイプ「を含む」とは一緒に使えません。
置換文字以外を置換する
見つかった部分以外を置き換えます。
置換後を入力(入力なしで空文字)
置き換えたあとの文字。空のままにすると、見つかった部分が消えます。

「電話番号から記号を消す」なら指定文字、「末尾の数字をまとめて消す」なら条件、と使い分けます。

同じ条件の組み立て方で、見つけた部分を取り出す側が文字の抽出です。 見つけた部分を消したり別の文字にしたりするならこちら、取り出して別の列にするならあちらを使ってください。

エラーと対処

どのエラーも、設定を直して実行し直せば直ります。 データを直す必要はありません。

新規列名が既にある

「新規列に挿入」で、入力した列名がすでにデータにあるときに出ます。

新規列名({{new_col}})が既存の列名と重複しています。

直し方 — 別の名前にするか、「既存列に上書き」に切り替えてください。

正規表現が不正

「正規表現で指定する」を on にして、書き方が間違っているときに出ます。

正規表現 {{regexp_text}} が不正です。参考:https://docs.python.org/ja/3/howto/regex.html

直し方 — かっこの対応を確かめてください。( [ などをそのままの文字として使うときは \( のように前に \ を付けます。

同じ条件タイプを 2 つ置いた

「条件に一致した文字を置換」で、「検索条件」を複数足して同じ条件タイプを選んでいるときに出ます。

条件タイプが設定間で重複しています。

直し方 — 条件タイプは 1 つずつにしてください。「から始まる」と「で終わる」のように違う種類なら並べられます。

条件の文字が空

「検索条件」を足したまま、目印の文字を入れていないときに出ます。

抽出条件に文字が入力されていません。

直し方 — 文字を入れるか、その「検索条件」を消してください。

「を含む」と文字数指定を一緒に使った

抽出条件「を含む」と文字数の指定を併用することはできません。

直し方 — どちらかを外してください。

文字数が空

「文字数を指定する」を on にしたまま、数値を入れていないときに出ます。

文字数が入力されていません。

直し方 — 数値を入れるか、「文字数を指定する」を off にしてください。

文字カテゴリが未選択

「連続する文字を指定する」を選んだまま、種類を選んでいないときに出ます。

文字カテゴリが選択されていません。

直し方 — 数字・英字・日本語文字・記号・スペースから選んでください。

列を選ばずに実行した

「処理対象列を選択」(「既存列に上書き」なら「文字列を選択」)が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。

対象の列が選択されていません。

直し方 — 列を選び直してください。

よく使う例

1. 記号を消す

お題 — 電話番号から区切り記号を外して突き合わせに使いたい

入力 — 電話番号 に 03-1234-5678

設定 — 置換文字 -、置換後は空

出力 — 0312345678

2. 書き方を 1 つに揃える

お題 — 同じ国が JP Japan 日本 と書き分けられている

入力 — 国 に JP Japan 日本

設定 — 置換ルールを 2 つ作り、置換文字 JP → 置換後 日本、置換文字 Japan → 置換後 日本

出力 — すべて 日本

注意 — 大文字と小文字の違いだけを吸収したいなら、文字列のクレンジングの「大文字/小文字の統一」で一度にできます

3. まとめて何種類かの文字を消す

お題 — 金額から記号と単位を外したい

入力 — 金額 に ¥1200円

設定 — 置換文字に ¥,円 と入れ(カンマ区切りで 2 つ指定したことになります)、置換後は空

出力 — 1200

4. 数字だけを残す

お題 — 数字以外の文字を全部消したい

入力 — コード に A-123-B

設定 — 「正規表現で指定する」を on、正規表現 [^0-9]、置換後は空

出力 — 123

5. 数字をまとめて消す

お題 — 商品名に付いた枝番を落として名寄せしたい

入力 — 商品名 に 商品A1 商品A2

設定 — 処理タイプ「条件に一致した文字を置換」、「文字カテゴリを指定する」(条件のまとまりの外)を on にして「連続する数字」、置換後は空

出力 — どちらも 商品A

注意 — この設定は値のどこにある数字も消します。末尾だけに限りたいなら「指定文字を置換」で「正規表現で指定する」を on にし、[0-9]+$ と書いてください

6. 指定した文字以外を消す

お題 — 数字だけ残したい(記号も日本語も消す)

入力 — 住所 に 東京都渋谷区1-2-3

設定 — 置換文字に 0,1,2,3,4,5,6,7,8,9 を入れ、「置換文字以外を置換する」を on、置換後は空

出力 — 123

7. 会社形態の表記を外す

お題 — 会社名から 株式会社 を外したい

入力 — 会社名 に 株式会社nehan

設定 — 置換文字 株式会社、置換後は空

出力 — nehan

注意 — 特殊な文字列のクレンジングの「会社名表記の統一」なら、株式会社 と ㈱ を一度に外せます

関連