줄리아에서 csv 파일 컬럼만 읽어들이는 법
가이드
가령 위와 같은 example.csv
파일이 있다고 하자. 이를 데이터프레임으로 불러들일 때, 데이터 전체가 아니라 열이름만 유지되어있고 텅 빈 데이터프레임을 만들고 싶을 때가 있다. 빈 데이터프레임이 필요한 경우가 있기 때문에 이런 경우도 반드시 있다.
julia> using CSV, DataFrames
julia> df = CSV.read("example.csv", DataFrame, limit = 1)[[false],:]
0×3 DataFrame
위 실행 결과에서 만들어진 데이터프레임은 3개의 열을 그대로 가지고 있지만 그 내용물은 전혀 가져오지 않았다.
CSV.read(limit = 1)
limit = 1
옵션을 통해 데이터프레임을 한 줄만 불렀다.
CSV.read()[[false],:]
- 길이 $1$ 인 비트 배열bit Array
[false]
로써 아무런 행도 참조하지 않았다. 이를 통해 빈 배열이 남았다.
julia> names(df)
3-element Vector{String}:
"I"
"V"
"E"
names()
함수로 열이름을 확인해보면 열이름은 정상적으로 유지되어 있음을 확인할 수 있다.
julia> push!(df, [4,4,"r"])
1×3 DataFrame
Row │ I V E
│ Int64 Int64 String1
─────┼───────────────────────
1 │ 4 4 r
push!()
로 새로운 데이터를 집어넣어도 원래 있던 배열처럼 제대로 작동하는 것을 확인할 수 있다.
그냥 limit = 0
를 하면?
julia> df2 = CSV.read("example.csv", DataFrame, limit = 0)
0×3 DataFrame
julia> push!(df2, [4,4,"r"])
┌ Error: Error adding value to column :I.
...
ERROR: LoadError: StackOverflowError:
StackOverflowError
에러가 발생한다.
환경
- OS: Windows
- julia: v1.6.3