Efektywny przepływ pracy

Manipulacja danymi w Julii

Katerina Zahradova

Instructor

Wskazówki dotyczące nazw

  • Krótkie, znaczące nazwy
    • wages zamiast df
    • wages zamiast us_min_wages_data_between_1968_and_2020_with_inflation_adjusted_column
  • Stosuj spójne konwencje nazewnictwa
    • mieszanie state_wage_2020 i effective.2020.dollars może być mylące
    • podobnie z wielkością liter — unikaj state, Year i REGION w tym samym DataFrame
Manipulacja danymi w Julii

Zbyt wiele zmiennych

  • Nie twórz zbyt wielu nowych zmiennych

    • zajmują pamięć
    • chaos: jaka jest różnica między wages_no_missing, wages_missing_state_only, wages_original_no_missing, wages_state_mean_no_missing itp.
  • Nadpisuj! Używaj select!(), transform!() itp.

  • Używaj makr chain, aby ograniczyć liczbę wersji tych samych danych
Manipulacja danymi w Julii

Zmienne zamiast zakodowanych wartości

  • Zmienne zamiast zakodowanych na stałe wartości
# 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)
Manipulacja danymi w Julii

Twórz funkcje

  • Napisz funkcję zamiast wielokrotnie powtarzać ten sam kod!
    • funkcje zapobiegają literówkom
    • po zdefiniowaniu są szybsze w użyciu
# 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
Manipulacja danymi w Julii

Komentowanie i dokumentowanie

  • Komentarze opisujące, co robimy
# 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)
  • Dokumentowanie powodów działań
# 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)
Manipulacja danymi w Julii

Poznaj dane

  • Warto poświęcić czas na zrozumienie danych
    • Łatwiej wyodrębnić informacje później
    • Tworzenie wykresów, drukowanie wyników, ...

Poznaj swoje dane

1 Photo by Myriam Jessier on Unsplash
Manipulacja danymi w Julii

Proś o pomoc!

Logo Google, Stack Overflow i DataCamp

Manipulacja danymi w Julii

Dobra zabawa!

  • Baw się dobrze, nie poddawaj się i ciesz się pracą!
Manipulacja danymi w Julii

Opóźnienia lotów na lotniskach USA

Struktura danych o lotach

Manipulacja danymi w Julii

Czas na ćwiczenia!

Manipulacja danymi w Julii

Preparing Video For Download...