列名の変更
列の名前を変えます。1 列ずつ付け直すほか、まとめて置換したり、データの 1 行目を列名にしたりできます。
SQLビルダーにも同じ名前の機能がありますが、選べる処理タイプが違います。SQLビルダーで使うときは列名の変更を見てください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。
設定項目
フォームの見出しの並び — 「詳細設定」 → 「検索対象の設定」 → 「置換後文字の設定」 → 「範囲指定の設定」。条件によって出ない見出しもあります。
- 処理タイプを選択
- 4 つから選びます。既定は列ごとに変更です。選んだタイプによって、以降の項目が入れ替わります。
| 処理タイプ | 何をするか |
|---|---|
| 列ごとに変更 | 列を選んで 1 つずつ名前を付ける |
| 指定文字を一括置換 | 列名に含まれる文字を置き換える |
| 条件に一致した文字を一括置換 | 条件に当てはまる部分を置き換える |
| 行の値を列名にする | データの中の 1 行を列名として使う |
列ごとに変更
この処理タイプだけ、設定がフォームではなくダイアログです。 フォームには 列名変更 ボタンだけが出ます。押すと列ごとに変更というダイアログが開き、入力データの全列が並びます。
- 列名変更
- ダイアログを開くボタン。隣に 「n 列変更」 と、いま何列に名前を付けたかが出ます。1 列も付けていないときは 「変更が設定されていません」 です。
- ダイアログの中
- 左に元の列名(型のアイコン付き)、右に新しい名前の入力欄が 1 行ずつ並びます。入力欄を空のままにした列は名前が変わりません。
選ばなかった列はそのままです。変更後の名前が空だとエラーになります。
指定文字を一括置換
列名に含まれる文字を、まとめて置き換えます。置換ルールは複数作れ、上から順に適用されます。
- 正規表現で指定する
- on にすると、置換する文字を正規表現で書けます。
- 置換文字必須
- 置き換えたい文字。複数入れられます。
- 置換後
- 置き換えたあとの文字。空のままにすると、その文字が消えます。
売上_2024 原価_2024 のような列名から _2024 を消す、といった使い方をします。
全角と大文字小文字
このタイプと「条件に一致した文字を一括置換」では、オプションに 2 つの項目が出ます。
- 全角文字を半角に変換する
- 列名の全角英数を半角にします。
- 英字の変換を選択
- 変換しない(既定)/ 小文字に変換する / 大文字に変換する。
この 2 つは置換が終わったあと、すべての列名に掛かります。 置換ルールに当たらなかった列名も対象です。
取り込んだデータの列名が ID のように全角だったり、大文字小文字が混ざっていたりするときに揃えられます。
条件に一致した文字を一括置換
「何で始まる」「何を含む」といった条件で部分を見つけて置き換えます。
- 条件タイプ
- から始まる / で終わる / を含む / が先頭の / が末尾の。
- 目印の文字を入れる欄
- 見出しは条件タイプで変わり、開始文字 / 終了文字 / 含む文字 / 先頭文字 / 末尾文字の「〜を入力(複数可)」になります。カンマ区切りで複数指定できます。
- 文字カテゴリを指定する(検索条件の中)
- on にすると、目印を具体的な文字ではなく数字 / 英字 / 日本語文字 / 記号の種類で指定できます。
- 開始文字を置換対象に含める
- 既定は on。見つけた目印の文字も置き換えの対象にするかどうかです。条件タイプによって「終了文字」「先頭文字」「末尾文字」と名前が変わります。
- 文字カテゴリを指定する(検索条件の外)
- 置き換える中身の形を決めます。on にすると連続する文字の種類を選択が出て、連続する数字(既定)/ 連続する数字+英字 / 連続する文字を指定するから選べます。off のままだと「中身」は「どんな文字でもよい」になります。
- 文字数を指定する
- on にすると 数値を入力 が出て、その文字数ちょうどの並びだけが対象になります。
- 置換文字以外を置換する
- on にすると、見つかった部分以外を置き換えます。
「列名の末尾に付いている連続した数字を消す」のような指定ができます。ただし組み合わせを 1 つ間違えると列名がまるごと消えるので、次の注意を読んでから使ってください。
行の値を列名にする
データの 1 行を取り出して、その値を列名にします。 1 行目が見出しになっているファイルを、見出し無しで読み込んでしまったときに使います。
- 条件必須
- どの行を列名にするかを、条件で指定します。条件の作り方は条件で行をフィルタと同じです。
- 条件の接続方法を選択
- 条件が 2 つ以上のときに出ます。AND / OR。
- 条件に一致しないデータを残す
- 条件の一致・不一致を入れ替えます。
- 条件に一致した行を結果から除外する
- 既定は on。列名にした行をデータから消します。off にすると、その行はデータにも残ります。
エラーと対処
列名を設定していない
処理タイプに必要な設定が空のとき。
列名の設定がされていません
直し方 — 処理タイプごとの設定を埋めてください。「列ごとに変更」なら列と新しい名前の組、「指定文字を一括置換」なら置換ルールです。
置換する文字を入れていない
検索条件を足したのに、目印の文字を入れていないときに出ます。
置換対象文字列を入力してください。
直し方 — 目印の文字を入れるか、その検索条件そのものを消してください。
変更後の列名が空
「列ごとに変更」で、新しい名前を入れていないとき。
変更後の列名を入力してください。
直し方 — 新しい名前を入れてください。空にはできません。
選んだ列が見つからない
「列ごとに変更」で指定した列がないとき。
対象の列が存在しません。
直し方 — 列を選び直してください。
条件に使う列が選ばれていない
「行の値を列名にする」の条件で、比べる列を空のまま実行したとき。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 条件の列を選び直してください。
列名にする行が 1 行でない
「行の値を列名にする」で、条件に当たる行が 0 行または 2 行以上のとき。
列名にする行は1行である必要がありますが、条件に一致する行数は
{{n}}行です。
{{n}} のところには、実際に当たった行数が出ます。
直し方 — 条件を絞って 1 行だけにしてください。0 行のときは条件が厳しすぎます。
正規表現が不正
「正規表現で指定する」で、書き方が間違っているとき。
正規表現
{{regexp_text}}が不正です。参考:https://docs.python.org/ja/3/howto/regex.html
{{regexp_text}} のところには、入力した正規表現がそのまま出ます。
直し方 — かっこの対応を確かめてください。
よく使う例
1. 列名を 1 つずつ付け直す
お題 — col1 col2 を 顧客ID 氏名 にしたい
入力 — 列名が col1 col2 のデータ
設定 — 処理タイプ「列ごとに変更」で 2 つの組を作る
出力 — 列名が 顧客ID 氏名 になる。値と並び順は変わらない
2. 列名から年を取り除く
お題 — 売上_2024 原価_2024 から _2024 を消したい
入力 — 列名が 売上_2024 原価_2024 のデータ
設定 — 処理タイプ「指定文字を一括置換」、置換文字 _2024、置換後は空
出力 — 売上 原価
3. 列名の全角を半角に揃える
お題 — 取り込んだデータの列名に全角英数が混ざっている
入力 — 列名が ID 売上2024 のデータ
設定 — 処理タイプ「指定文字を一括置換」、「全角文字を半角に変換する」を on
出力 — 列名が ID 売上2024 になる
注意 — 置換ルール自体は必要です。消したい文字がないときは、存在しない文字を指定しておきます
4. 列名を小文字に揃える
お題 — ID Id id が混ざっている
入力 — 列名が ID Id id のデータ
設定 — 処理タイプ「指定文字を一括置換」、「英字の変換を選択」で小文字に変換する
出力 — 列名がすべて id になる。同じ名前の列が並ぶので、先に列選択/削除で要らない列を落としておきます
5. 見出し行を列名にする
お題 — 見出しが 1 行目に入ったまま読み込まれてしまった
入力 — 列名が 列1 列2、1 行目に 顧客ID 氏名 が入ったデータ
設定 — 処理タイプ「行の値を列名にする」、条件で 1 行目を指す(例: 列1 が 顧客ID に等しい)、「条件に一致した行を結果から除外する」は on のまま
出力 — その行が列名になり、データからは消える
6. 列名の末尾の数字を消す
お題 — 売上1 売上2 のように付いた連番を消したい
入力 — 列名が 売上1 売上2 合計 のデータ
設定 — 処理タイプ「条件に一致した文字を一括置換」で、次の 4 つをすべて設定します。
| 設定項目 | 値 |
|---|---|
| 条件タイプ | が末尾の |
| 文字カテゴリを指定する(検索条件の中) | on → 数字 |
| 末尾文字を置換対象に含める | off(既定の on のままだと当たりません) |
| 文字カテゴリを指定する(検索条件の外) | on → 連続する数字 |
| 置換後 | 空 |
出力 — 売上 売上 合計。合計 のように末尾が数字でない列名は変わりません
注意 — 売上1 と 売上2 はどちらも 売上 になるので、同じ名前の列が 2 つ並びます。先に列選択/削除で片方を落とすか、列ごとに変更で 1 つずつ別の名前を付けてください
注意 — 「末尾の」にこだわらないなら、検索条件そのものを作らず「文字カテゴリを指定する(検索条件の外)」だけを on にして「連続する数字」にする方が簡単です。ただしこれは列名のどこにある数字も消すので、2024_売上 は _売上 になります