文字の置換
列の中の文字を置き換えます。不要な記号を消す、書き方を揃える、見つけた部分だけを別の文字にする、といった使い方をします。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
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
注意 — 特殊な文字列のクレンジングの「会社名表記の統一」なら、株式会社 と ㈱ を一度に外せます