줄리아에서 csv 파일 컬럼만 읽어들이는 법

줄리아에서 csv 파일 컬럼만 읽어들이는 법

How to Read Column Names of CSV File Only in julia

가이드

20211206_151035.png

가령 위와 같은 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
─────┼───────────────────────
   14      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
댓글