chpater 4 update
This commit is contained in:
parent
9b42b60ef4
commit
e98ba8ad6b
1 changed files with 28 additions and 1 deletions
|
@ -1,7 +1,34 @@
|
|||
using DataFrames
|
||||
using CSV
|
||||
|
||||
# Julid for Data Sciences makes use of functions to keep variable scooping under control
|
||||
|
||||
function grades_2020()
|
||||
name = ["Sally", "Bob", "Alice", "Hank"]
|
||||
grade_2020 = [1, 5, 8.5, 4]
|
||||
DataFrame(; name, grade_2020)
|
||||
end
|
||||
|
||||
function write_grades()
|
||||
path = joinpath("data", "grades.csv")
|
||||
CSV.write(path, grades_2020())
|
||||
end
|
||||
|
||||
|
||||
filter(:name => ==("Alice"), grades_2020())
|
||||
|
||||
function complex_filter(name, grade)::Bool
|
||||
name = startswith(name, "A") || startswith(name, "B")
|
||||
grade = 6 < grade
|
||||
name && grade
|
||||
end
|
||||
|
||||
filter([:name, :grade_2020] => complex_filter, grades_2020())
|
||||
|
||||
function salaries()
|
||||
names = ["John", "Hank", "Karen", "Zed"]
|
||||
salary = [1_900, 2_800, 2_800, missing]
|
||||
DataFrame(; names, salary)
|
||||
end
|
||||
|
||||
subset(salaries(), :salary => ByRow(>(2_000)); skipmissing = true)
|
Loading…
Reference in a new issue