JuliaでCSVファイルから列だけを読み込む方法
ガイド
上のようなexample.csv
ファイルがあるとしよう。このデータフレームに読み込むとき、データ全体ではなく、列名だけを保持し、中身が空のデータフレームを作りたい場合がある。空のデータフレームが必要な場合があるから、このような場合も間違いなくある。
using CSV
# 行なしでデータフレームを読み込む
df_empty = CSV.read("example.csv", DataFrame; limit = 0)
上の実行結果で作成されたデータフレームは3つの列をそのまま持っているが、その内容物は全く持っていなかった。
CSV.read(limit = 1)
limit = 1
オプションを通じて、データフレームを1行だけ読んだ。
CSV.read()[[false],:]
- 長さ$1$のビット配列bit Array
[false]
で、どの行も参照していなかった。これによって空のデータフレームが残った。
# 列名が正常に保持されていることを確認
column_names = names(df_empty)
names()
関数で列名を確認すると、列名が正常に保持されていることが分かる。
# 空のデータフレームに新しいデータを挿入
push!(df_empty, [1, "new_data", 3.14])
push!()
で新しいデータを挿入すると、元々あった配列のようにきちんと動作することが確認できる。
単にlimit = 0
をすると?
# limit 0でデータフレームを読み込み、空のデータフレームを得ようとする試み
df_empty_error = CSV.read("example.csv", DataFrame; limit = 0)
StackOverflowError
エラーが発生する。
環境
- OS: Windows
- julia: v1.6.3