Effektivt arbetsflöde

Datamanipulering i Julia

Katerina Zahradova

Instructor

Tips för namn

  • Korta, meningsfulla namn
    • wages hellre än df
    • wages hellre än us_min_wages_data_between_1968_and_2020_with_inflation_adjusted_column
  • Följ namnkonventioner och mönster
    • att blanda state_wage_2020 och effective.2020.dollars är svårt att hålla reda på
    • detsamma gäller versaler – undvik state, Year och REGION i samma DataFrame
Datamanipulering i Julia

För många variabler

  • Skapa inte för många nya variabler

    • belastar minnet i onödan
    • kaos: vad är skillnaden mellan wages_no_missing, wages_missing_state_only, wages_original_no_missing, wages_state_mean_no_missing osv.?
  • Skriv över! Använd select!(), transform!() osv.

  • Använd chain-makron för att minska behovet av nya versioner av samma data
Datamanipulering i Julia

Variabler i stället för hårdkodning

  • Variabler framför hårdkodade värden
# Rather
replace_missing = 0

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

# Than
replace!(df.col1, missing => 0)
replace!(df.col2, missing => 0)
Datamanipulering i Julia

Gör en funktion av det

  • Skriv en funktion i stället för att upprepa samma kod om och om igen!
    • funktioner minskar risken för stavfel
    • när de väl är skapade går de snabbare att använda
# Function to plot multiple lineplots with labels
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
Datamanipulering i Julia

Kommentera och dokumentera

  • Kommentera vad vi gör
# Standardize names
rename!(df, :ColumnOne => :col_1)

# Lines with missing company
df[ismissing.(df.company),:]

# Pivoting on year and state
unstack(wages, :year, :state, :eff_min_wage)
  • Dokumentera varför vi gör saker
# Replace missing wages by minimum
# As the worst case
min = minimum(skipmissing(df.wages))
replace!(df.wages, missing => min)

# Joining with countries
# To study how countries influence quality
leftjoin(company, countries, on=:location)
Datamanipulering i Julia

Lär känna datan

  • Ta dig tid att förstå datan
    • Lättare att utvinna information senare
    • Skapa diagram, skriv ut resultaten, ...

Lär känna dina data

1 Foto av Myriam Jessier på Unsplash
Datamanipulering i Julia

Be om hjälp!

Google, Stack Overflow, DataCamp logos

Datamanipulering i Julia

Ha kul!

  • Ha kul, ge inte upp, och njut av det!
Datamanipulering i Julia

Flygförseningar på amerikanska flygplatser

Struktur för flygdata

Datamanipulering i Julia

Nu kör vi en övning!

Datamanipulering i Julia

Preparing Video For Download...