CSV 파일 불러오기와 저장하기

Julia로 하는 데이터 조작

Katerina Zahradova

Instructor

구분자

  • Delimiter = 값을 구분하는 문자 또는 문자열
  • Delimiter 예: ",", " ", "\t"
# 공백을 구분자로 사용해 파일 로드
penguins = DataFrame(CSV.File("penguins.csv",delim=" "))
Julia로 하는 데이터 조작

소수 구분 기호

  • 소수점 점(파란색), 예: 3.14
  • 소수점 콤마(초록색), 예: 3,14
  • 둘 다 사용(진초록)
  • 아랍식 소수 구분(빨간색)

전 세계의 소수 구분 기호

# 콤마를 소수 구분으로 사용해 로드
penguins = DataFrame(CSV.File(
        "penguins.csv",
        decimal=',', delim=" "))
1 By NuclearVacuum, Wikipedia
Julia로 하는 데이터 조작

데이터셋 일부 로드

# 13~27행 로드
penguins_part = DataFrame(CSV.File("penguins.csv", skipto=10, limit=3))
3×7 DataFrame
Row species  island     culmen_length_mm  culmen_depth_mm  ...
    String7  String15   Float64           Float64          ...
______________________________________________________________
1   Adelie   Torgersen  38.6              21.2             ...
2   Adelie   Torgersen  34.6              21.1             ...
3   Adelie   Torgersen  36.6              17.8             ...
Julia로 하는 데이터 조작

헤더

# 헤더를 특정 행으로 지정
penguins_header = DataFrame(CSV.File("penguins.csv", header = 1))
333×7 DataFrame
Row species  island     culmen_length_mm  culmen_depth_mm  ...
    String7  String15   Float64           Float64          ...
______________________________________________________________
1   Adelie   Torgersen  39.1              18.7             ...
2   Adelie   Torgersen  39.5              17.4             ...
3   Adelie   Torgersen  40.3              18.0             ...
...
Julia로 하는 데이터 조작

여러 줄 헤더

# 다중 행 헤더
penguins_header = DataFrame(CSV.File("penguins.csv", header = [1, 2]))
332×7 DataFrame
Row species_Adelie  island_Torgersen  culmen_length_mm_39.1  ...
    String7         String15          Float64                ...
________________________________________________________________
1   Adelie          Torgersen         39.5                   ...
2   Adelie          Torgersen         40.3                   ...
3   Adelie          Torgersen         36.7                   ...
...
Julia로 하는 데이터 조작

헤더 바꾸기

# 헤더 교체
penguins_header = DataFrame(CSV.File("penguins.csv",
                        header = [:species, :area, :culmen_l_mm, :culmen_d_mm,
                            :flipper_l_mm, :weight_g, :sex]))
333×7 DataFrame
Row species  area       culmen_l_mm  culmen_d_mm      ...
    String7  String15   Float64      Float64          ...
____________________________________________________
1   Adelie   Torgersen  39.1         18.7             ...
2   Adelie   Torgersen  39.5         17.4             ...
3   Adelie   Torgersen  40.3         18.0             ...
...
Julia로 하는 데이터 조작

CSV 파일 쓰기

# DataFrame 저장
CSV.write("temp/transformed_penguins.csv", delim = " ", decimal = ',')
Julia로 하는 데이터 조작

치트시트

  • delim=: 열 값을 구분하는 Char 또는 String; 예: species,island,...

  • decimal=: 실수의 소수 구분 기호를 지정하는 Char; 예: 3.14.

  • skipto=: 로드를 시작할 파일의 행 번호를 지정하는 Int; 주의: 헤더도 포함됨

  • limit=: 로드할 행 수를 지정하는 Int

  • header=: 헤더의 행 번호 Int, 다중 행은 Vector{Int}, 새 헤더는 Vector{String} 또는 Vector{Symbol}

  • CSV.File(path)path의 파일을 로드함

  • CSV.write(path, df)df를 CSV로 path에 저장함

CSV.File()CSV.write 문서

Julia로 하는 데이터 조작

연습해 봅시다!

Julia로 하는 데이터 조작

Preparing Video For Download...