Efficiënte workflow

Data manipulatie in Julia

Katerina Zahradova

Instructor

Tips voor namen

  • Korte, betekenisvolle namen
    • wages in plaats van df
    • wages in plaats van us_min_wages_data_between_1968_and_2020_with_inflation_adjusted_column
  • Volg naamconventies/patronen
    • mix van state_wage_2020 en effective.2020.dollars is lastig te onthouden
    • idem met hoofdletters: vermijd state, Year en REGION in dezelfde DataFrame
Data manipulatie in Julia

Te veel variabelen

  • Maak niet te veel nieuwe variabelen

    • vult het geheugen
    • chaos: wat is het verschil tussen wages_no_missing, wages_missing_state_only, wages_original_no_missing, wages_state_mean_no_missing, enz.
  • Overschrijf! Gebruik select!(), transform!(), enz.

  • Gebruik chain-macros om minder nieuwe versies van dezelfde data te maken
Data manipulatie in Julia

Variabelen i.p.v. hardcoden

  • Variabelen boven hardcoderen van waarden
# Liever
replace_missing = 0

replace!(df.col1, missing => replace_missing)
replace!(df.col2, missing => replace_missing)

# Dan
replace!(df.col1, missing => 0)
replace!(df.col2, missing => 0)
Data manipulatie in Julia

Maak er een functie van

  • Schrijf een functie i.p.v. steeds opnieuw dezelfde code
    • functies voorkomen typfouten
    • eenmaal klaar, sneller te gebruiken
# Functie om meerdere lijndiagrammen met labels te plotten
function make_line_plot(xs, ys,labels; xlabel="", ylabel="", title="")
    p = plot(title = title, xlabel = xlabel, ylabel = ylabel)
    for (x, y, label) in zip(xs, ys, labels)
        plot!(x, y, label=label)
    end
    p
end
Data manipulatie in Julia

Commenteer en documenteer

  • Commentaar bij wat we doen
# Namen standaardiseren
rename!(df, :ColumnOne => :col_1)

# Rijen met ontbrekend bedrijf
df[ismissing.(df.company),:]

# Pivoteren op jaar en staat
unstack(wages, :year, :state, :eff_min_wage)
  • Documenteer waarom we iets doen
# Ontbrekende lonen vervangen door minimum
# Als worstcasescenario
min = minimum(skipmissing(df.wages))
replace!(df.wages, missing => min)

# Joinen met landen
# Om te onderzoeken hoe landen kwaliteit beïnvloeden
leftjoin(company, countries, on=:location)
Data manipulatie in Julia

Leer de data kennen

  • Neem de tijd om de data te begrijpen
    • Later makkelijker informatie halen
    • Maak grafieken, print resultaten, ...

Leer je data kennen

1 Foto door Myriam Jessier op Unsplash
Data manipulatie in Julia

Vraag om hulp!

Google-, Stack Overflow- en DataCamp-logo's

Data manipulatie in Julia

Veel plezier!

  • Heb plezier, geef niet op en geniet!
Data manipulatie in Julia

Vluchtvertragingen op Amerikaanse luchthavens

Structuur van vluchtgegevens

Data manipulatie in Julia

Laten we oefenen!

Data manipulatie in Julia

Preparing Video For Download...