Convert Column Types タブ

Convert Column Types タブでは、列のデータ型を変換できます。文字列を数値に変換したり、日付形式を変更したりする場合に使用します。

基本的な使い方

型変換タブを開く

  1. Data Table タブを開く
  2. 列ヘッダーを右クリック
  3. Convert Column Types... を選択

変換を設定する

  1. To 列のドロップダウンで変換先のデータ型を選択
  2. On Error でエラー時の処理を選択
  3. Preview ボタンで変換結果を確認
  4. Apply ボタンで変換を実行

型変換の設定画面

この例では bill_length_mm 列を string から float64 に変換しています。右側のプレビューテーブルで変換後の結果を確認できます。

変換する列を選択

型を自動判定する

Auto-detect types ボタンをクリックすると、MIDAS が string 列の値を調べ、列ごとに変換先の型を To 列に設定します。提案された型を確認し、必要に応じて修正してから Preview に進んでください。string 以外の列は変更しません。

Auto-detect による型の提案

型を提案するのは、欠損値を除くすべての値をその型として解釈できる列だけです。NA のような文字列は欠損値ではなく値として扱われるため、それを含む列は判定されず string のまま残ります。このような列を変換するには、手動で型を選択し On Error で変換できない値の扱いを指定してください。

判定には誤変換を防ぐ保護があります。郵便番号のように先頭にゼロのある数字列は、数値に変換すると先頭のゼロが失われるため string のままにします。±2^53 を超える整数を含む列も、変換で下位の桁が失われるため数値を提案しません。0 と 1 だけの列は boolean ではなく int64 と判定します。日付として解釈できる列は、時刻部分が 00:00:00 以外の値が 1 つでもあれば datetime、すべて 00:00:00 なら date と判定します。2025-01-15 00:00:00 のように時刻が書かれていても、0 時 0 分 0 秒であれば date 側に数えます。

データ型

MIDAS で使用できるデータ型は次の表の通りです。

データ型説明例
boolean真偽値true, false
int64整数42, -100
float64小数3.14, -0.5
date日付2024-01-15
datetime日時2024-01-15 10:30:00
string文字列"Hello", "Tokyo"
<Enum 名>プロジェクトで定義したカテゴリ集合(Manage Enums タブで作成)species_enum など

Enum 型は Manage Enums タブで作成すると、To ドロップダウンに species_enum のような名前で表示されます。Enum 型に変換できるのは string 型・int64 型・Enum 型の列だけで、ほかの型の列では Enum 名が表示されません。列を Enum 型に変換する手順は Manage Enums タブを参照してください。

文字列から各型へどんな表記を変換できるかは、読み込み時の型判定やセルの編集と共通の解釈規則に従います。型ごとに受け付ける形式は データ型 を参照してください。MIDAS は値の前後の空白をどの型への変換でも取り除いてから解釈し、取り除いた後に空になる値は変換エラーではなく欠損値(NULL)として扱います。Enum 列を数値・真偽値・日付・日時へ変換する場合も、各水準の値を文字列として同じ規則で解釈します。

エラー処理(On Error)

変換できない値がある場合の処理方法を選択できます:

オプション説明
NULL変換できない値を欠損値(NULL)に置き換える
Exclude row変換できない値を含む行をデータセットから除外する
Fail変換できない値があるとエラーを出して処理を中止する

例:文字列 → 整数の変換

元データに "abc" のような数値に変換できない値がある場合:

  • NULL: "abc" → NULL(欠損値)
  • Exclude row: その行全体がデータセットから除外される
  • Fail: 変換処理が中止され、エラーメッセージが表示される

整数(int64)への変換では、"abc" のような数値でない値に加えて、"1.5" のような小数、"007" のような先頭にゼロのある数字列、±2^53 を超える整数も変換できない値として扱います。黙って丸めたり先頭のゼロを落としたりして値を変えることはありません。

日時変換のタイムゾーン

string 列の To で datetime を選ぶと、その行の下にタイムゾーンの入力欄(Timezone for values without a UTC offset)が表示されます。名前の一部を入力すると候補を検索できます(例: tokyo で Asia/Tokyo)。候補は MIDAS が同梱するタイムゾーンデータベースの名前で、Asia/Tokyo のような地域名のほかに US/Pacific のような別名も含みます。この欄では、タイムゾーンオフセットのない値をどのタイムゾーンの時刻として解釈するかを指定できます。既定は UTC で、2025-01-15 14:30:00 のような値を UTC の 14:30 として解釈します。Asia/Tokyo を指定すると、同じ値を日本標準時の 14:30 として解釈し、UTC の 05:30 として保存します。ローカル時刻で記録された CSV を、オフセット付きの形式で出力し直せない場合に使用してください。

Timezone 指定の設定欄

Timezone の指定が適用されるのは、オフセットのない値だけです。2025-01-15T14:30:00+09:00 のようにオフセットを持つ値は、指定に関係なく値自身のオフセットで解釈します。ひとつの列に両方の値が混在する場合も、この規則を値ごとに適用します。日付のみの値は、指定したタイムゾーンの 0 時 0 分 0 秒として解釈します。1

指定したタイムゾーンは、変換設定に固定値として保存されます。ブラウザのタイムゾーンが異なる端末でプロジェクトを開いて再計算しても、変換結果は変わりません。日時データの保存形式と表示の関係は日時データとタイムゾーンを参照してください。

プレビュー機能

Preview ボタンをクリックすると、変換結果を事前に確認できます。プレビュー画面には変換後のデータが表示され、Exclude row モードの場合は変換エラーが発生した行がハイライトされます。問題がなければ Apply で変換を実行し、問題があれば Back で設定画面に戻って修正できます。

変換の実行

Apply ボタンをクリックすると、新しいデータセット名を入力するダイアログが表示されます。名前を入力して OK をクリックすると、変換結果が新しいデータセットとして作成されます。

元のデータセットは変更されません。変換結果は常に新しい Derived Dataset として保存されます。

保存済み変換の編集

既存の変換済みデータセットは編集できます。Project Lineage タブでデータセットを右クリックするか、Project Overview のデータセットのメニューボタン(⋮)から Edit Operation... を選択すると、ソースデータセットと変換設定が復元された状態で Convert Column Types が編集モードで開きます。

編集モードでは、他のデータセットやモデル、レポートがこのデータセットに依存している場合、影響を受ける項目の種類と件数が警告として表示されます。ソースデータセットを変更すると変換設定はリセットされるため、新しいソースの列に対して設定し直します。Enum 型に変換できない型の列に Enum 型への変換が保存されていた場合、編集モードはその列の変換を外した状態で開き、外した列名を警告として表示します。Apply をクリックして確認すると、同じデータセットが新しい設定で再計算されます。データセット名は変わりません。このデータセットに依存する派生データセットは次にデータが必要になったとき再計算され、依存するモデルは自動的に再推定されます。

編集タブを開いてから Apply をクリックするまでの間に、同じデータセットの操作が別の編集タブや Agent API など他の経路から変更されていた場合、MIDAS は保存を止めてダイアログを表示します。先に加えられた変更を警告なく失わせないためです。ダイアログはタブを開いた時点の操作と、その後に他所で変わった操作を並べて表示します。Overwrite with This Tab's Edits を選ぶと、他所で変わった操作をこのタブの編集内容で上書きして保存します。Keep Editing を選ぶと保存せずに編集タブへ戻り、編集内容はそのまま残ります。もう一度保存すると同じダイアログが表示されます。

See also

脚注

  1. 夏時間の切り替えにより存在しない時刻と、切り替えにより 2 度現れる時刻は、いずれも標準時側のオフセットで解釈します。たとえば America/New_York では、存在しない時刻 2025-03-09 02:30:00 は UTC の 07:30 に、2 度現れる時刻 2025-11-02 01:30:00 は UTC の 06:30 になります。 ↩