Filtrare

Introducere în Julia

James Fulton

Climate informatics researcher

Exemplu

6×4 DataFrame   
 Row | day     distance     time  raining
     | String     Int64  Float64     Bool
_____|__________________________________
   1 | Wednesday   2000    14.99     true
   2 | Monday      5000    31.68    false
   3 | Thursday    3500    22.02     true
   4 | Tuesday     3000    17.25     true
   5 | Thursday    4500    25.47    false
   6 | Monday      5000    30.77     true
Introducere în Julia

Funcția filter

6×4 DataFrame   
 Row | day     distance     time  raining
     | String     Int64  Float64     Bool
_____|__________________________________
   1 | Wednesday   2000    14.99     true
   2 | Monday      5000    31.68    false
...
# Filter to Monday runs
df_monday = filter(row -> row.day=="Monday", df_run)
Introducere în Julia

Funcția filter

println(df_monday)
6×4 DataFrame   
 Row | day     distance     time  raining
     | String     Int64  Float64     Bool
_____|__________________________________
   1 | Monday      5000    31.68    false
   2 | Monday      5000    30.77     true
Introducere în Julia

Filtrare pe coloane numerice

# Filter to shorter runs
df_short = filter(row -> row.distance<=3000, df_run)

println(df_short)
 Row | day     distance     time  raining
_____|__________________________________
   1 | Wednesday   2000    14.99     true
   2 | Tuesday     3000    17.25     true
Introducere în Julia

Filtrare pe coloane booleene

# Filter to raining days
df_raining = filter(row -> row.raining, df_run)
println(df_raining)
 Row | day     distance     time  raining
_____|__________________________________
   1 | Wednesday   2000    14.99     true
   2 | Thursday    3500    22.02     true
   3 | Tuesday     3000    17.25     true
   4 | Monday      5000    30.77     true
Introducere în Julia

Filtrare cu toate comparațiile

  • row.col == b filtrează unde row.col este egal cu b
  • row.col != b filtrează unde row.col nu este egal cu b
  • row.col > b filtrează unde row.col este mai mare decât b
  • row.col >= b filtrează unde row.col este mai mare sau egal cu b
  • row.col < b filtrează unde row.col este mai mic decât b
  • row.col <= b filtrează unde row.col este mai mic sau egal cu b
  • row.col filtrează unde row.col este true
Introducere în Julia

Analiză suplimentară

# Distance run in rain
println(sum(df_raining.time))
13500
Introducere în Julia

Să exersăm!

Introducere în Julia

Preparing Video For Download...