日付を条件にしてデータを抽出したい

ある日付以前のレコードのみを抜き出す、もしくは、ある時刻のレコードのみを抜き出すなど、日付を条件にして条件を満たすデータを抽出する方法を説明します。

説明

MSIPでは行選択アイコンを用いて、日付型、日時型に対して、条件を満たすレコードのみを抽出することができます。

例えば、テーブルデータの中に、以下のように日付の値が格納された「日付」列があるとします。

元データ

ここから、2023/4/1以前のレコードだけ抽出すると、以下のようになります。

抽出データ

このように、大量にあるレコードの中から、日付を条件にして一部のレコードのみを抽出することができます。

使い方

行選択アイコンでは、抽出条件にdatetimeを利用することができます。

例えば、2023年4月1日以前のレコードを抜き出すには、日付型の列の値がdatetime(2023,4,1)以下という条件で行選択アイコンを実行します。

  1. データに行選択アイコンを接続します。
  2. パラメータ設定画面の「選択列」で日付型もしくは日時型の列を指定します。
  3. 「演算子」に「<=」を選択します。
  4. 「式」に「datetime(2023, 4, 1)」を入力します。

行選択

  1. 実行すると、日付が2023年4月1日以前のレコードのみが抽出され、出力されます。

同様に、2023年10月1日のレコードのみを抜き出すには、datetime(2023, 10, 1)と等しいという条件で行選択アイコンを実行します。

行選択2

分析への応用

時系列データ分析をおこなう場合、例えば前年度のデータを元に学習モデルを作成し、その学習モデルを用いて今年度の予測、またはモデルの検証をおこなう場合があります。
そのような場合には、データを前年度のレコードからなるデータと、今年度のレコードからなるデータに分けなければなりません。

MSIPには日時を条件にレコードを抽出する機能がありますので、データ投入時に全データを投入してしまえば、あとでMSIPの機能でレコードを抽出することができます。
そのため、データ投入時には、分析時にどのようにデータを分けるかといったことに悩む必要はありません。
また、分析途中で四半期ごとにデータを分けたいと思ったとしても、抽出条件を変えるだけで済みますので柔軟な分析が可能です。

OnePoint

より詳細なレコード抽出

上記の行選択アイコンのみを用いた方法では、例えば、毎月1日のレコードを抜き出すというような処理は行えません。
このような場合には日時情報アイコンを用いて、まず日付の値から「日」の値を抜き出し、毎月1日と等しいという条件で行選択アイコンを実行します。

  1. データに日時情報アイコンを接続します。
  2. パラメータ設定画面を開き、「日」にチェックを入れます。

日時情報

  1. 実行すると、「日」の値を抽出した列が追加され、出力されます。
  2. 日時情報アイコン行選択アイコンを接続します。
  3. パラメータ設定画面を開き、「対象列」に「日」を指定します。
  4. 「演算子」に「==」(等しい)を選択し、「式」に「1」を入力します。

行選択3

  1. 実行すると、「日」の値が1のレコードのみが抽出されます。

抽出データ2

なお、条件に範囲を指定することで、毎月1日から10日のレコードのみを抽出するなどといったことも可能です。

時、分、秒までのデータがある場合

データの対象列が日時型で、時、分、秒の情報もある場合には、行選択アイコンのパラメータ編集画面の条件で
datetime(2023, 4, 1, 0, 0, 0)(2023年4月1日0時0分0秒)
のように指定することで、時、分、秒単位でのレコード抽出も可能です。

また、日時情報アイコンで、時、分、秒の抜き出しが出来ますので、毎時0分のレコードを抽出する、毎日9時から17時までのレコードを抽出するといったこともできます。

関連項目