CSVファイルの読み込みと書き出し

Julia でのデータ操作

Katerina Zahradova

Instructor

デリミタ

  • デリミタ=値を区切る文字または文字列
  • デリミタ例:","" ""\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 でのデータ操作

ヘッダー

# 1行目をヘッダーとして指定
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 でのデータ操作

¡Vamos a practicar!

Julia でのデータ操作

Preparing Video For Download...