複数ファイル一括読み込み
何本かのファイルをまとめて 1 つのデータソースにできます。月ごとに分かれたファイルや、支店ごとに置かれたファイルを 1 つの表にしたいときに使います。
どのファイルがどこから来たかを残す
まとめると、もとのファイルが分からなくなります。残したいときは列にファイル名を追加するや列にフォルダ名を追加するを ON にしてください。
列の形が同じとき
そのまま縦に積まれます。 列の型もそのまま残ります。
sales_jan.csv
| 商品 ID(文字列型) | 商品名(文字列型) | 売上(数値型) |
|---|---|---|
| 1001 | 商品 A | 5000 |
| 1002 | 商品 B | 3000 |
sales_feb.csv
| 商品 ID(文字列型) | 商品名(文字列型) | 売上(数値型) |
|---|---|---|
| 1001 | 商品 A | 6000 |
| 1003 | 商品 C | 4000 |
読み込んだ結果
| 商品 ID(文字列型) | 商品名(文字列型) | 売上(数値型) |
|---|---|---|
| 1001 | 商品 A | 5000 |
| 1002 | 商品 B | 3000 |
| 1001 | 商品 A | 6000 |
| 1003 | 商品 C | 4000 |
列の形が違うとき
エラーにはなりません。 全部のファイルの列を足し合わせた形になり、足りないところは空欄になります。
products.csv
| 商品 ID(数値型) | 商品名(文字列型) | 価格(数値型) |
|---|---|---|
| 1001 | 商品 A | 500 |
| 1002 | 商品 B | 300 |
inventory.csv
| 商品 ID(文字列型) | 在庫数(数値型) | 倉庫(文字列型) |
|---|---|---|
| 1001 | 100 | 東京 |
| 1003 | 150 | 大阪 |
読み込んだ結果
| 商品 ID(文字列型) | 商品名(文字列型) | 価格(数値型) | 在庫数(数値型) | 倉庫(文字列型) |
|---|---|---|---|---|
| 1001 | 商品 A | 500 | ||
| 1002 | 商品 B | 300 | ||
| 1001 | 100 | 東京 | ||
| 1003 | 150 | 大阪 |
空欄は値がないことを表します。 0 や空文字とは違うので、分析プロジェクトでは欠損値として扱われます。
同じ列の型が違うとき
同じ名前の列が、ファイルによって違う型になっていることがあります。そのときは両方を入れられる型に揃えられます。
| ファイルごとの型 | 揃えたあとの型 |
|---|---|
| 同じ型どうし | そのまま |
| 片方が空だけの列 | 値が入っているほうの型 |
| 数値型どうし(整数と小数など) | 数値型 |
| それ以外の組み合わせ(数値型と文字列型など) | 文字列型 |
上の例の商品 IDは、片方が数値型・片方が文字列型なので、文字列型に揃っています。
列の並び
| 決まり | 中身 |
|---|---|
| 基準 | 1 つめに読まれたファイルの並びが基準になります |
| 共通の列 | 1 つめのファイルでの位置を保ちます |
| 1 つめにない列 | 後ろに足されます。 もとのファイルでの前後関係は保たれます |
例: ファイル 1 が A,B,C、ファイル 2 が C,B,D、ファイル 3 が E,F なら、結果は A,B,C,D,E,F になります。
列にファイル名を追加するなどで足した列は、いつも一番右です。
入れ子になったデータ
JSON のように値の中にさらに構造があるものは、まとめて 1 つの文字列として入ります。中の値を列にしたいときは、読み込んだあとに分析プロジェクトで取り出してください。詳しくはJSONファイルにまとめています。
真偽値(true / false)も文字列として入ります。
設定はすべてのファイルに同じように効く
読み込みオプションとデータ調整オプションは、ファイルごとに分けられません。 1 つの設定が全部のファイルに当たります。
| 設定 | 当たり方 | 混ぜたときに起きること |
|---|---|---|
| 区切り文字 | 全ファイルに同じ | 区切りの違うファイルが 1 列になる |
| 文字コード | 全ファイルに同じ | 文字コードの違うファイルが文字化けする |
| ファイルの圧縮タイプ | 全ファイルに同じ | 圧縮の違うファイルが読めない |
| シート選択方法 | 全ファイルに同じ | 同じ番号・同じ名前のシートが読まれる |
| 1行目を列名として扱う | 全ファイルに同じ | 列名の行があるファイルとないファイルを混ぜると、列名がデータに混ざる |
| 先頭から行数をスキップし以降を読み込む | ファイルごとに同じ行数 | 説明行の数が違うファイルを混ぜると、片方だけずれる |
| 各ファイルから読み込む行数を指定する | ファイルごとに | 合計ではありません。3 ファイルに 100 なら最大 300 行 |
| 読み込む列を指定する | ファイルごとに | 指定した列がないファイルがあるとエラーで止まります |
1 つずつの説明は CSV/TSV/Textファイル / Excelファイル / 1行目を列名として扱う / 先頭から行数をスキップし以降を読み込む / 各ファイルから読み込む行数を指定する / 読み込む列を指定する にあります。
読み込む列を指定したときの注意
指定した列が 1 つでも見つからないファイルがあると、読み込みが止まります。
指定した列がデータにありません。対象列:
{{target_cols}}
直し方 — 全部のファイルにある列だけを指定するか、列の指定をやめてすべて読み込み、分析プロジェクトで要らない列を落としてください。列番号で指定するを使っているときは、ファイルによって列の位置が違わないかも確かめてください。
Excel のシートを混ぜるとき
シート名で指定すると、その名前のシートがないファイルで読めません。 ファイルごとにシート名が違うときは、シート番号で指定するほうが確実です。
複数のシートを指定したときは、各ファイルの指定したシートがすべて読まれて、縦に積まれます。 どのシートの行かを残したいときは、Excelファイルの列にシート名を追加するを ON にしてください。
1行目を列名として扱うの例
sales_2023.csv(1 行目が列名、データ 4 行)と sales_2024.csv(1 行目が列名、データ 4 行)を読み込みます。
ON のとき(はじめの状態)
両方のファイルの 1 行目が列名になり、2 行目以降だけが積まれます。データは 8 行です。
| 商品名 | 売上 | 月 |
|---|---|---|
| 商品 A | 10000 | 1 月 |
| 商品 B | 15000 | 1 月 |
| 商品 A | 12000 | 2 月 |
| 商品 B | 13000 | 2 月 |
| 商品 A | 11000 | 1 月 |
| 商品 B | 16000 | 1 月 |
| 商品 C | 9000 | 1 月 |
| 商品 A | 13000 | 2 月 |
OFF のとき
両方のファイルの 1 行目もデータとして入ります。データは 10 行になり、列名の行が 2 回混ざります。
| 列 1 | 列 2 | 列 3 |
|---|---|---|
| 商品名 | 売上 | 月 |
| 商品 A | 10000 | 1 月 |
| 商品 B | 15000 | 1 月 |
| 商品 A | 12000 | 2 月 |
| 商品 B | 13000 | 2 月 |
| 商品名 | 売上 | 月 |
| 商品 A | 11000 | 1 月 |
| 商品 B | 16000 | 1 月 |
| 商品 C | 9000 | 1 月 |
| 商品 A | 13000 | 2 月 |
列名の行が混ざると、数値の列が文字列型になります。 列名の行があるファイルでは ON のままにしてください。
各ファイルから読み込む行数の例
各ファイルから読み込む行数に 2 と入れ、次の 2 ファイルを読み込みます。どちらも 1 行目が列名で、その字は 列1,列2 です。
ファイル 1: 1 行目 列1,列2、データ 3 行(A,1 / B,2 / C,3)
ファイル 2: 1 行目 列1,列2、データ 4 行(D,4 / E,5 / F,6 / G,7)
読み込んだ結果(各ファイルの先頭 2 行ずつ、合わせて 4 行)
| 列 1 | 列 2 |
|---|---|
| A | 1 |
| B | 2 |
| D | 4 |
| E | 5 |
列名の行は数に入りません。 2 と書けばデータが 2 行ずつ読まれます。
先頭から行数をスキップする例
読み飛ばしは列名を決めるより先に効きます。 列名の行があるファイルで 1 を指定すると、列名の行が落ちて、その次の行が列名になります。
ファイル 1(1 行目 列1,列2、以下 A,1 / B,2 / C,3)にスキップする行数 1 を指定すると、A,1 の行が列名になり、データは B,2 と C,3 の 2 行だけになります。
| A | 1 |
|---|---|
| B | 2 |
| C | 3 |
列名の行を残したいなら、読み飛ばす行数は「列名の行の手前まで」にしてください。 表の上に説明が 2 行あって 3 行目が列名なら、2 が正しい値です。