Charger et écrire des fichiers CSV

Manipulation de données en Julia

Katerina Zahradova

Instructor

Délimiteurs

  • Délimiteur = caractère ou chaîne servant à séparer les valeurs
  • Exemples de délimiteurs : ",", " ", "\t", ...
# Chargement d'un fichier avec l'espace comme délimiteur
penguins = DataFrame(CSV.File("penguins.csv",delim=" "))
Manipulation de données en Julia

Signe décimal

  • Point décimal (bleu), p. ex., 3.14
  • Virgule décimale (vert), p. ex., 3,14
  • Les deux (vert foncé)
  • Séparateur décimal arabe (rouge)

Signes décimaux dans le monde

# Chargement d'un fichier avec la virgule comme séparateur décimal
penguins = DataFrame(CSV.File(
        "penguins.csv",
        decimal=',', delim=" "))
1 Par NuclearVacuum, Wikipédia
Manipulation de données en Julia

Charger des parties d'ensembles de données

# Chargement des lignes 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             ...
Manipulation de données en Julia

En-tête

# Spécifier l'en-tête comme une ligne
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             ...
...
Manipulation de données en Julia

En-tête sur plusieurs lignes

# En-tête sur plusieurs lignes
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                   ...
...
Manipulation de données en Julia

Remplacer l'en-tête

# Remplacer l'en-tête
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             ...
...
Manipulation de données en Julia

Écrire des fichiers CSV

# Enregistrer le DataFrame
CSV.write("temp/transformed_penguins.csv", delim = " ", decimal = ',')
Manipulation de données en Julia

Aide-mémoire

  • delim= : un Char ou String qui sépare les valeurs des colonnes ; p. ex., species,island,...

  • decimal= : un Char indiquant le séparateur décimal des réels ; p. ex., . dans 3.14

  • skipto= : un Int précisant le numéro de ligne où commencer le chargement ; attention : l'en-tête est inclus !

  • limit= : un Int indiquant le nombre de lignes à charger

  • header= : un Int pour le numéro de ligne de l'en-tête, un Vector{Int} pour plusieurs lignes, un Vector{String} ou Vector{Symbol} pour réécrire l'en-tête

  • CSV.File(path) charge un fichier à path

  • CSV.write(path, df) écrit df en CSV à path

Documentation pour CSV.File() et CSV.write

Manipulation de données en Julia

Passons à la pratique !

Manipulation de données en Julia

Preparing Video For Download...