Caricare e scrivere file CSV

Manipolazione dei dati in Julia

Katerina Zahradova

Instructor

Delimiter

  • Delimiter = carattere o stringa che separa i valori
  • Esempi di delimiter: ",", " ", "\t", ...
# Caricare un file con spazio come delimiter
penguins = DataFrame(CSV.File("penguins.csv",delim=" "))
Manipolazione dei dati in Julia

Separatore decimale

  • Punto decimale (blu), es. 3.14
  • Virgola decimale (verde), es. 3,14
  • Entrambi (verde scuro)
  • Separatore decimale arabo (rosso)

Segni decimali nel mondo

# Caricare un file con la virgola come separatore decimale
penguins = DataFrame(CSV.File(
        "penguins.csv",
        decimal=',', delim=" "))
1 Di NuclearVacuum, Wikipedia
Manipolazione dei dati in Julia

Caricare parti di dataset

# Caricare le righe 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             ...
Manipolazione dei dati in Julia

Header

# Specificare l'intestazione come riga
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             ...
...
Manipolazione dei dati in Julia

Header su più righe

# Intestazione su più righe
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                   ...
...
Manipolazione dei dati in Julia

Sostituire l'intestazione

# Sostituire l'intestazione
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             ...
...
Manipolazione dei dati in Julia

Scrivere file CSV

# Salvare DataFrame
CSV.write("temp/transformed_penguins.csv", delim = " ", decimal = ',')
Manipolazione dei dati in Julia

Promemoria

  • delim=: un Char o String che separa i valori nelle colonne; es. species,island,...

  • decimal=: un Char che indica il separatore decimale nei float; es. . in 3.14

  • skipto=: un Int con il numero di riga da cui iniziare a caricare; attenzione: include l'header!

  • limit=: un Int con il numero di righe da caricare

  • header=: un Int per la riga dell'header, un Vector{Int} per più righe, un Vector{String} o Vector{Symbol} per riscrivere l'header

  • CSV.File(path) carica un file in path

  • CSV.write(path, df) scrive df come CSV in path

Documentazione di CSV.File() e CSV.write

Manipolazione dei dati in Julia

¡Vamos a practicar!

Manipolazione dei dati in Julia

Preparing Video For Download...