条件で行をフィルタ
条件に当てはまる行だけを残します。東京の行だけを見る、10 万円以上の取引を抜き出す、今年のデータに絞る、といった使い方をします。
当てはまらなかった行も使いたいときは行フィルタ条件による分割を使ってください。条件の作り方はまったく同じです。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
列は変わりません。変わるのは行数だけで、残った行は入力の順のまま出ます。
Spark エンジンでも動きます。
設定項目
比較タイプに「範囲指定」を選ぶと、「範囲指定の設定」という見出しが出ます。 不等号と始点・終点はその下に並びます。
「オプション」はチェックを入れるまで中身が出ません。 見出しの横のチェックボックスを on にすると、条件に一致しないデータを残す が出ます。
- 条件
- 対象列・比較タイプ・条件値の組。複数作れます。見出しに必須の印は付きませんが、1 組もないまま実行するとエラーになります。
- 対象列を選択必須
- 条件をかける列。1 つの条件につき 1 列です。選んだ列の型で、この下に出る項目がすべて変わります。
- 日付要素を選択 / 日付時間要素を選択 / 時間要素を選択
- 対象列が日付・日付時間・時間のときだけ出ます。どの単位で比べるかを決めます。
- 比較タイプを選択必須
- どう比べるか。選べる中身は対象列の型と単位で変わります(選べる比較タイプ)。
- 条件値を設定 / 条件値を入力
- 比べる相手。比較タイプによってはカンマ区切りで複数入れられます(項目名が「(複数可)」になります)。「欠損値を含む」「欠損値を含まない」では出ません。
- 既存列を条件値にする
- on にすると、決まった値ではなく同じ行の別の列の値と比べます。「実績が目標を上回った行」のような条件が作れます。
- 不等号選択
- 比較タイプが「範囲指定」のときに出ます。始点と終点を含むかどうかを次の 4 通りから選びます。
始点値 < 対象値 < 終点値/始点値 ≦ 対象値 < 終点値/始点値 < 対象値 ≦ 終点値/始点値 ≦ 対象値 ≦ 終点値(既定) - 始点値を入力 / 終点値を入力
- 「範囲指定」のときの両端。それぞれ別の列の値にもできます(「既存列を始点にする」「既存列を終点にする」)。
- 曜日を選択
- 単位に「曜日」を選んだときに出ます。「等しい」「等しくない」では1 つだけ、「いずれかに等しい」「いずれとも等しくない」では複数選べます。
- 条件の接続方法を選択
- 条件を 2 つ以上作ると出ます。AND(すべてを満たす)か OR(どれかを満たす)。既定は AND です。
- 条件に一致しないデータを残す
- on にすると、条件に当てはまらなかった行が残ります。既定は off です。
条件の作り方
条件は 対象列 → (日付なら単位)→ 比較タイプ → 条件値 の順に決めます。対象列の型によって、選べる比較タイプも、条件値の入れ方も変わります。
日付・日付時間・時間の列では、比較タイプの前にどの単位で見るかを選びます。単位を決めると、その単位だけを取り出して比べます。「月 = 4」なら、年に関係なく 4 月の行がすべて残ります。
選べる単位
| 型 | 選べる単位 | 既定 |
|---|---|---|
| 日付 | 年 / 月 / 日 / 年-月-日 / 年-月 / 曜日 | 年-月-日 |
| 日付時間 | 年 / 月 / 日 / 時 / 分 / 秒 / 年-月-日 / 年-月 / 年-月-日 時:分:秒 / 時:分:秒 / 曜日 | 年-月-日 時:分:秒 |
| 時間 | 時:分:秒 / 時 / 分 / 秒 | 時 |
選べる比較タイプ
対象列の型ごとの一覧
数値の列・時間の列(11 種)
| 比較タイプ | 意味 |
|---|---|
| 等しい(=) / 等しくない(!=) | 値が一致するか |
| より小さい(<) / 以下(<=) / より大きい(>) / 以上(>=) | 大小 |
| いずれかに等しい(in) / いずれとも等しくない(not in) | 複数の値のどれか |
| 範囲指定 | 始点と終点の間 |
| 欠損値を含まない / 欠損値を含む | 空欄かどうか |
文字列の列(11 種)
| 比較タイプ | 意味 |
|---|---|
| 等しい(=) / 等しくない(!=) | 完全一致 |
| いずれかに等しい(in) / いずれとも等しくない(not in) | 複数の値のどれか |
| 文字を含む(grep) / 文字を含まない(ungrep) | 部分一致 |
| [条件値]から始まる(starts_with) / [条件値]で終わる(ends_with) | 前方一致・後方一致 |
| 正規表現にマッチ | 書き方の決まったパターンで探す |
| 欠損値を含まない / 欠損値を含む | 空欄かどうか |
日付・日付時間の列(単位によって変わる)
| 単位 | 選べる比較タイプ |
|---|---|
| 曜日以外(日付時間の「年-月-日 時:分:秒」を除く) | 数値の列と同じ 11 種 |
| 日付時間の「年-月-日 時:分:秒」 | 上からいずれかに等しい / いずれとも等しくない を除いた 9 種 |
| 曜日 | 等しい(=) / 等しくない(!=) / いずれかに等しい(in) / いずれとも等しくない(not in) の 4 種だけ。欠損値の 2 種も出ません |
条件値の入れ方
比較タイプごとの入れ方
| 比較タイプ | 入れ方 |
|---|---|
| 等しい / 等しくない / 大小 | 値を 1 つ |
| いずれかに等しい / いずれとも等しくない | カンマ区切りで複数 |
| 文字を含む / 文字を含まない / から始まる / で終わる | カンマ区切りで複数。「含む」「から始まる」「で終わる」はどれか 1 つに当てはまれば残り、「含まない」はすべてに当てはまらない行だけ残る |
| 正規表現にマッチ | パターンを 1 つ |
| 範囲指定 | 始点と終点 |
| 欠損値を含む / 欠損値を含まない | 入れない |
値そのものにカンマを入れたいときは \, と書きます。 A\,B,C と書くと A,B と C の 2 つになります。
「既存列を条件値にする」が使えるのは一部の組み合わせだけです。
| 対象列の型 | 使える比較タイプ | 単位の条件 |
|---|---|---|
| 数値 | 等しい / 等しくない / 大小 / 範囲指定 | なし |
| 文字列 | 等しい / 等しくない | なし |
| 日付 | 等しい / 等しくない / 大小 / 範囲指定 | 年-月-日 または 年-月 のときだけ |
| 日付時間 | 等しい / 等しくない / 大小 / 範囲指定 | 年-月-日 / 年-月 / 年-月-日 時:分:秒 / 時:分:秒 のときだけ |
| 時間 | 等しい / 等しくない / 大小 / 範囲指定 | なし |
複数の条件を組み合わせる
条件を 2 つ以上作ると「条件の接続方法を選択」が出ます。
| 接続方法 | 残る行 |
|---|---|
| AND(既定) | すべての条件を満たす行 |
| OR | どれか 1 つでも満たす行 |
条件に一致しないデータを残す
on にすると、結果が反転します。
| 設定 | 残る行 |
|---|---|
| off(既定) | 条件を満たす行 |
| on | 条件を満たさない行 |
反転は、すべての条件を AND / OR でまとめたあとに 1 回だけかかります。 条件ごとに反転するわけではありません。複雑な条件を書くより、「残したくない条件」を書いて反転させた方が簡単なことがあります。
空欄の行の扱い
対象列が空欄(欠損値)の行が残るかどうかは、比較タイプで変わります。
「〜でない」を意味する比較タイプでは、空欄の行が残ります。 空欄は「何とも等しくない」として扱われるためです。残るのは等しくない(!=)・いずれとも等しくない(not in)・文字を含まない(ungrep)・欠損値を含むの 4 つで、ほかは残りません。
比較タイプごとの一覧
| 比較タイプ | 空欄の行 |
|---|---|
| 等しい(=) | 残らない |
| 等しくない(!=) | 残る |
| より小さい(<) / 以下(<=) / より大きい(>) / 以上(>=) | 残らない |
| 範囲指定 | 残らない |
| いずれかに等しい(in) | 残らない |
| いずれとも等しくない(not in) | 残る |
| 文字を含む(grep) | 残らない |
| 文字を含まない(ungrep) | 残る |
| [条件値]から始まる / [条件値]で終わる | 残らない |
| 正規表現にマッチ | 残らない |
| 欠損値を含まない | 残らない |
| 欠損値を含む | 残る |
日付・日付時間・時間の列も、単位で切り出したあとは同じ決まりになります。
エラーと対処
どのエラーもノードの設定を直して実行し直せば消えます。 データを作り直す必要はありません。
条件を設定していない
条件を 1 つも作らずに実行したとき、または条件値が空のときに出ます。
フィルタ条件を設定してください。
直し方 — 条件を作り、対象列・比較タイプ・条件値をすべて埋めてください。
比較タイプを選んでいない
対象列は選んだが、比較タイプが空のときに出ます。
比較タイプを設定してください。
直し方 — 比較タイプを選んでください。
比較タイプがその型では使えない
保存されている比較タイプが、その列の型では使えないときに出ます。列の型を変えたあとに起きます。
比較タイプの設定が不正です。プルダウンリストから選択してください。
直し方 — 比較タイプを選び直してください。
範囲指定の不等号を選んでいない
範囲指定を選んだが、端を含むかどうかを決めていないときに出ます。
範囲指定の不等号を設定してください。
直し方 — 4 つの組み合わせから選んでください。
条件値が数値として読めない
数値の列や、年・月などの数で比べる単位に、数値でない値を入れたときに出ます。{{value}} には入れた値が、{{dtype_msg}} には読もうとした型が入ります。
入力した値:
{{value}}が{{dtype_msg}}として読み込めませんでした。
直し方 — 数値だけを入れてください。1,000 のような桁区切りはカンマが区切り文字と見なされるので使えません。
条件値がその型に合わない
カンマ区切りで入れた値の中に型に合わないものがあるとき、または日付として読めない値を入れたときに出ます。
条件値が不正です。データ型が異なる値が入力されている可能性があります。
直し方 — 対象列の型に合う値を入れてください。カンマ区切りのときは、1 つずつすべてが読める形になっているか確かめてください。
正規表現が不正
「正規表現にマッチ」で、書き方が間違っているときに出ます。
正規表現
{{regexp_text}}が不正です。参考:https://docs.python.org/ja/3/howto/regex.html
直し方 — かっこの対応や記号の使い方を確かめてください。( ) [ ] をそのままの文字として探したいときは、前に \ を付けて打ち消します。
列の型が変わっている
条件を作ったときと、実行時で列の型が違うときに出ます。前の処理を変えると起きます。
{{target_col}}列の型が条件設定時の型と異なります。条件の再設定をしてください。
直し方 — 条件を作り直してください。型が変わると選べる比較タイプも変わるため、設定を引き継げません。フォームの上でも「セットされた列の型が変わりました。列を選択し直してください」と出ます。
対象列が決まらない
対象列を選んでいないとき、または選んだ列が入力にないときに出ます。「既存列を条件値にする」で指定した列がないときも同じです。
対象の列が選択されていません。
直し方 — 列を選び直してください。
よく使う例
1. 特定の地域だけを残す
お題 — 東京の行だけを見たい
入力 — 地域 列を持つ明細
設定 — 対象列 地域、比較タイプ「等しい(=)」、条件値 東京
出力 — 地域 が 東京 の行だけ
2. 金額の大きい取引だけを残す
お題 — 10 万円以上の取引
入力 — 金額 列(数値型)を持つ明細
設定 — 対象列 金額、比較タイプ「以上(>=)」、条件値 100000
出力 — 金額 が 10 万以上の行。金額 が空欄の行は落ちる
3. 複数の地域を残す
お題 — 東京・大阪・名古屋のどれか
入力 — 地域 列を持つ明細
設定 — 対象列 地域、比較タイプ「いずれかに等しい(in)」、条件値 東京,大阪,名古屋
出力 — 3 つのどれかに当てはまる行。条件を 3 つ作って OR でつなぐより短く書けます
4. 今年のデータだけに絞る
お題 — 2024 年のデータ
入力 — 日付 列(日付型)を持つ明細
設定 — 対象列 日付、単位「年」、比較タイプ「等しい(=)」、条件値 2024
出力 — 2024 年の行だけ。月日は問わない
5. 平日だけを残す
お題 — 土日を除きたい
入力 — 日付 列(日付型)を持つ明細
設定 — 対象列 日付、単位「曜日」、比較タイプ「いずれとも等しくない(not in)」、曜日に土・日
出力 — 月曜から金曜の行。日付 が空欄の行も残るので、落としたいなら「欠損値を含まない」の条件を足して AND でつなぐ
6. 目標を上回った行を残す
お題 — 実績が目標より大きい行
入力 — 実績 と 目標 の 2 列(どちらも数値型)
設定 — 対象列 実績、比較タイプ「より大きい(>)」、「既存列を条件値にする」を on にして 目標 を選ぶ
出力 — 同じ行の 目標 より 実績 が大きい行だけ
7. 商品名に特定の語を含む行
お題 — 商品名に「限定」か「特別」が入っているもの
入力 — 商品名 列を持つ商品マスタ
設定 — 対象列 商品名、比較タイプ「文字を含む(grep)」、条件値 限定,特別
出力 — どちらかの語を含む行
8. 住所が入っていない行を見つける
お題 — 住所が空欄の行を調べたい
入力 — 住所 列を持つ名簿
設定 — 対象列 住所、比較タイプ「欠損値を含む」
出力 — 住所 が空欄の行だけ
9. 期間で絞る
お題 — 2024 年 4 月から 6 月まで
入力 — 日付 列(日付型)を持つ明細
設定 — 対象列 日付、単位「年-月」、比較タイプ「範囲指定」、不等号「始点値 ≦ 対象値 ≦ 終点値」、始点 2024-04、終点 2024-06
出力 — 4 月・5 月・6 月の行
10. テスト用の行を取り除く
お題 — 商品コードが TEST で始まる行を捨てたい
入力 — 商品コード 列を持つ明細
設定 — 対象列 商品コード、比較タイプ「[条件値]から始まる(starts_with)」、条件値 TEST、「条件に一致しないデータを残す」を on
出力 — TEST で始まらない行。商品コード が空欄の行も残る
11. 2 つの条件を両方満たす行
お題 — 東京で、かつ 10 万円以上
入力 — 地域 と 金額 を持つ明細
設定 — 条件 1「地域 等しい 東京」、条件 2「金額 以上 100000」、接続方法を AND
出力 — 両方に当てはまる行だけ
12. 空欄を落として除外する
お題 — 東京以外を残したいが、地域が空欄の行は落としたい
入力 — 地域 列に空欄の混じった明細
設定 — 条件 1「地域 等しくない 東京」、条件 2「地域 欠損値を含まない」、接続方法を AND
出力 — 地域が入っていて、かつ東京でない行