using CSV
using DataFramesLearn DataFrames.jl
学习Julia
Julia
  1 导入库
2 读取数据
df = CSV.read("../data/203st_idw_interp_0.05deg.csv", DataFrame)
# df = CSV.read("I:/order_data/Xujw/203st_idw_interp_0.05deg.csv", DataFrame)
df # copy(df) 复制df203×7 DataFrame
178 rows omitted
| Row | site | lon | lat | Eh | V | Ni | Ba | 
|---|---|---|---|---|---|---|---|
| String15 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | |
| 1 | 19G26 | 111.8 | 29.07 | 33.2 | 0.08 | 1.55 | 126.99 | 
| 2 | 22G-80 | 111.93 | 28.94 | 163.6 | 0.45 | 2.77 | 71.83 | 
| 3 | 19G22 | 111.95 | 28.98 | -48.0 | 0.17 | 1.18 | 161.81 | 
| 4 | 22G-83 | 111.98 | 29.11 | 64.8 | 0.25 | 0.59 | 136.21 | 
| 5 | 22G-81 | 112.03 | 29.04 | 143.1 | 0.97 | 1.83 | 124.54 | 
| 6 | 20DT-19G | 112.07 | 29.09 | 26.0 | 0.853692 | 1.28 | 173.21 | 
| 7 | 19G21 | 112.14 | 28.87 | 143.0 | 0.06 | 1.16 | 5.54 | 
| 8 | 20DT-17G | 112.14 | 29.0 | -60.8 | 0.590868 | 0.7 | 258.56 | 
| 9 | 22G-82 | 112.2 | 29.08 | 96.1 | 0.36 | 1.04 | 183.63 | 
| 10 | 22G-90 | 112.2 | 29.66 | -88.1 | 0.06 | 1.8 | 167.24 | 
| 11 | 22G-88 | 112.24 | 29.27 | 115.5 | 0.51 | 2.29 | 20.98 | 
| 12 | 22G-85 | 112.26 | 29.18 | 90.5 | 0.310593 | 4.08 | 476.34 | 
| 13 | DT02G | 112.26 | 29.59 | -29.3 | 0.53 | 2.16 | 234.38 | 
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | 
| 192 | 11JH031 | 113.65 | 30.17 | -54.3 | 0.11 | 0.69 | 279.53 | 
| 193 | 11JH161 | 113.69 | 30.09 | -54.3 | 0.08 | 0.63 | 213.16 | 
| 194 | 22G-67 | 113.7 | 30.15 | -54.3 | 0.47 | 5.19 | 136.8 | 
| 195 | 11JH057 | 113.7 | 30.39 | -81.3826 | 0.15 | 0.97 | 457.99 | 
| 196 | 11JH182 | 113.72 | 30.05 | -54.3 | 0.11 | 0.42 | 119.42 | 
| 197 | 22G-66 | 113.75 | 30.29 | -97.3 | 0.82 | 4.77 | 332.1 | 
| 198 | 11JH183 | 113.77 | 30.07 | -54.8787 | 0.07 | 0.44 | 155.31 | 
| 199 | 11JH185 | 113.8 | 30.1 | -54.7215 | 0.36 | 0.81 | 101.32 | 
| 200 | 11JH180 | 113.84 | 30.06 | -61.5239 | 0.12 | 0.57 | 258.18 | 
| 201 | 22G-68 | 113.87 | 30.14 | -55.6 | 0.2 | 4.7 | 163.95 | 
| 202 | 18G-40 | 113.95 | 30.17 | -149.0 | 0.3 | 2.15 | 514.11 | 
| 203 | 22G-69 | 114.0 | 30.13 | -99.0 | 0.288669 | 1.38 | 0.08 | 
3 取出某一行
3.1 方法1
df.V # df."V"203-element Vector{Float64}:
 0.08
 0.45
 0.17
 0.25
 0.97
 0.85369167324573
 0.06
 0.590868123957716
 0.36
 0.06
 0.51
 0.310592788968676
 0.53
 ⋮
 0.11
 0.08
 0.47
 0.15
 0.11
 0.82
 0.07
 0.36
 0.12
 0.2
 0.3
 0.2886689597882423.2 方法2
df[:, :V] # 这种情况下取值更改不会改变之前的数据框内容203-element Vector{Float64}:
 0.08
 0.45
 0.17
 0.25
 0.97
 0.85369167324573
 0.06
 0.590868123957716
 0.36
 0.06
 0.51
 0.310592788968676
 0.53
 ⋮
 0.11
 0.08
 0.47
 0.15
 0.11
 0.82
 0.07
 0.36
 0.12
 0.2
 0.3
 0.2886689597882424 列名
names(df, AbstractString) # 筛选出不同数据类型的列名
names(df, Float64)6-element Vector{String}:
 "lon"
 "lat"
 "Eh"
 "V"
 "Ni"
 "Ba"5 创建一个0行但包含全部列名的df
empty(df) # empty!()直接让目标df清空0×7 DataFrame
| Row | site | lon | lat | Eh | V | Ni | Ba | 
|---|---|---|---|---|---|---|---|
| String15 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | 
6 查看df基本信息
df维度:
size(df) # 维度
nrow(df) # ncol()203统计信息,类似R语言summary
describe(df, cols=4:7)4×7 DataFrame
| Row | variable | mean | min | median | max | nmissing | eltype | 
|---|---|---|---|---|---|---|---|
| Symbol | Float64 | Float64 | Float64 | Float64 | Int64 | DataType | |
| 1 | Eh | -54.8574 | -278.3 | -72.2 | 177.2 | 0 | Float64 | 
| 2 | V | 0.344441 | 0.0 | 0.259441 | 1.88 | 0 | Float64 | 
| 3 | Ni | 2.46611 | 0.0 | 2.14 | 8.39 | 0 | Float64 | 
| 4 | Ba | 253.259 | 0.01 | 195.07 | 1752.0 | 0 | Float64 | 
7 筛选df
df[:, [:lon, :lat]]203×2 DataFrame
178 rows omitted
| Row | lon | lat | 
|---|---|---|
| Float64 | Float64 | |
| 1 | 111.8 | 29.07 | 
| 2 | 111.93 | 28.94 | 
| 3 | 111.95 | 28.98 | 
| 4 | 111.98 | 29.11 | 
| 5 | 112.03 | 29.04 | 
| 6 | 112.07 | 29.09 | 
| 7 | 112.14 | 28.87 | 
| 8 | 112.14 | 29.0 | 
| 9 | 112.2 | 29.08 | 
| 10 | 112.2 | 29.66 | 
| 11 | 112.24 | 29.27 | 
| 12 | 112.26 | 29.18 | 
| 13 | 112.26 | 29.59 | 
| ⋮ | ⋮ | ⋮ | 
| 192 | 113.65 | 30.17 | 
| 193 | 113.69 | 30.09 | 
| 194 | 113.7 | 30.15 | 
| 195 | 113.7 | 30.39 | 
| 196 | 113.72 | 30.05 | 
| 197 | 113.75 | 30.29 | 
| 198 | 113.77 | 30.07 | 
| 199 | 113.8 | 30.1 | 
| 200 | 113.84 | 30.06 | 
| 201 | 113.87 | 30.14 | 
| 202 | 113.95 | 30.17 | 
| 203 | 114.0 | 30.13 | 
8 条件筛选
9 常规
df[:, Not([:site, :lon, :lat])]203×4 DataFrame
178 rows omitted
| Row | Eh | V | Ni | Ba | 
|---|---|---|---|---|
| Float64 | Float64 | Float64 | Float64 | |
| 1 | 33.2 | 0.08 | 1.55 | 126.99 | 
| 2 | 163.6 | 0.45 | 2.77 | 71.83 | 
| 3 | -48.0 | 0.17 | 1.18 | 161.81 | 
| 4 | 64.8 | 0.25 | 0.59 | 136.21 | 
| 5 | 143.1 | 0.97 | 1.83 | 124.54 | 
| 6 | 26.0 | 0.853692 | 1.28 | 173.21 | 
| 7 | 143.0 | 0.06 | 1.16 | 5.54 | 
| 8 | -60.8 | 0.590868 | 0.7 | 258.56 | 
| 9 | 96.1 | 0.36 | 1.04 | 183.63 | 
| 10 | -88.1 | 0.06 | 1.8 | 167.24 | 
| 11 | 115.5 | 0.51 | 2.29 | 20.98 | 
| 12 | 90.5 | 0.310593 | 4.08 | 476.34 | 
| 13 | -29.3 | 0.53 | 2.16 | 234.38 | 
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | 
| 192 | -54.3 | 0.11 | 0.69 | 279.53 | 
| 193 | -54.3 | 0.08 | 0.63 | 213.16 | 
| 194 | -54.3 | 0.47 | 5.19 | 136.8 | 
| 195 | -81.3826 | 0.15 | 0.97 | 457.99 | 
| 196 | -54.3 | 0.11 | 0.42 | 119.42 | 
| 197 | -97.3 | 0.82 | 4.77 | 332.1 | 
| 198 | -54.8787 | 0.07 | 0.44 | 155.31 | 
| 199 | -54.7215 | 0.36 | 0.81 | 101.32 | 
| 200 | -61.5239 | 0.12 | 0.57 | 258.18 | 
| 201 | -55.6 | 0.2 | 4.7 | 163.95 | 
| 202 | -149.0 | 0.3 | 2.15 | 514.11 | 
| 203 | -99.0 | 0.288669 | 1.38 | 0.08 | 
df[:, Between(:site, :lat)]203×3 DataFrame
178 rows omitted
| Row | site | lon | lat | 
|---|---|---|---|
| String15 | Float64 | Float64 | |
| 1 | 19G26 | 111.8 | 29.07 | 
| 2 | 22G-80 | 111.93 | 28.94 | 
| 3 | 19G22 | 111.95 | 28.98 | 
| 4 | 22G-83 | 111.98 | 29.11 | 
| 5 | 22G-81 | 112.03 | 29.04 | 
| 6 | 20DT-19G | 112.07 | 29.09 | 
| 7 | 19G21 | 112.14 | 28.87 | 
| 8 | 20DT-17G | 112.14 | 29.0 | 
| 9 | 22G-82 | 112.2 | 29.08 | 
| 10 | 22G-90 | 112.2 | 29.66 | 
| 11 | 22G-88 | 112.24 | 29.27 | 
| 12 | 22G-85 | 112.26 | 29.18 | 
| 13 | DT02G | 112.26 | 29.59 | 
| ⋮ | ⋮ | ⋮ | ⋮ | 
| 192 | 11JH031 | 113.65 | 30.17 | 
| 193 | 11JH161 | 113.69 | 30.09 | 
| 194 | 22G-67 | 113.7 | 30.15 | 
| 195 | 11JH057 | 113.7 | 30.39 | 
| 196 | 11JH182 | 113.72 | 30.05 | 
| 197 | 22G-66 | 113.75 | 30.29 | 
| 198 | 11JH183 | 113.77 | 30.07 | 
| 199 | 11JH185 | 113.8 | 30.1 | 
| 200 | 11JH180 | 113.84 | 30.06 | 
| 201 | 22G-68 | 113.87 | 30.14 | 
| 202 | 18G-40 | 113.95 | 30.17 | 
| 203 | 22G-69 | 114.0 | 30.13 | 
9.1 正则表达式
df[:, r"l"]203×2 DataFrame
178 rows omitted
| Row | lon | lat | 
|---|---|---|
| Float64 | Float64 | |
| 1 | 111.8 | 29.07 | 
| 2 | 111.93 | 28.94 | 
| 3 | 111.95 | 28.98 | 
| 4 | 111.98 | 29.11 | 
| 5 | 112.03 | 29.04 | 
| 6 | 112.07 | 29.09 | 
| 7 | 112.14 | 28.87 | 
| 8 | 112.14 | 29.0 | 
| 9 | 112.2 | 29.08 | 
| 10 | 112.2 | 29.66 | 
| 11 | 112.24 | 29.27 | 
| 12 | 112.26 | 29.18 | 
| 13 | 112.26 | 29.59 | 
| ⋮ | ⋮ | ⋮ | 
| 192 | 113.65 | 30.17 | 
| 193 | 113.69 | 30.09 | 
| 194 | 113.7 | 30.15 | 
| 195 | 113.7 | 30.39 | 
| 196 | 113.72 | 30.05 | 
| 197 | 113.75 | 30.29 | 
| 198 | 113.77 | 30.07 | 
| 199 | 113.8 | 30.1 | 
| 200 | 113.84 | 30.06 | 
| 201 | 113.87 | 30.14 | 
| 202 | 113.95 | 30.17 | 
| 203 | 114.0 | 30.13 | 
10 转换函数
共五种方法:
- combine 
- select 
- transformselect 
导入分组统计所需包
using Statistics求V的平均值
combine(df, :V => mean => :mean_V)1×1 DataFrame
| Row | mean_V | 
|---|---|
| Float64 | |
| 1 | 0.344441 | 
筛选lon
select(df, :lon => mean => :mean_lon)203×1 DataFrame
178 rows omitted
| Row | mean_lon | 
|---|---|
| Float64 | |
| 1 | 112.868 | 
| 2 | 112.868 | 
| 3 | 112.868 | 
| 4 | 112.868 | 
| 5 | 112.868 | 
| 6 | 112.868 | 
| 7 | 112.868 | 
| 8 | 112.868 | 
| 9 | 112.868 | 
| 10 | 112.868 | 
| 11 | 112.868 | 
| 12 | 112.868 | 
| 13 | 112.868 | 
| ⋮ | ⋮ | 
| 192 | 112.868 | 
| 193 | 112.868 | 
| 194 | 112.868 | 
| 195 | 112.868 | 
| 196 | 112.868 | 
| 197 | 112.868 | 
| 198 | 112.868 | 
| 199 | 112.868 | 
| 200 | 112.868 | 
| 201 | 112.868 | 
| 202 | 112.868 | 
| 203 | 112.868 | 
随便选
select(df, r"l", "site", :V)203×4 DataFrame
178 rows omitted
| Row | lon | lat | site | V | 
|---|---|---|---|---|
| Float64 | Float64 | String15 | Float64 | |
| 1 | 111.8 | 29.07 | 19G26 | 0.08 | 
| 2 | 111.93 | 28.94 | 22G-80 | 0.45 | 
| 3 | 111.95 | 28.98 | 19G22 | 0.17 | 
| 4 | 111.98 | 29.11 | 22G-83 | 0.25 | 
| 5 | 112.03 | 29.04 | 22G-81 | 0.97 | 
| 6 | 112.07 | 29.09 | 20DT-19G | 0.853692 | 
| 7 | 112.14 | 28.87 | 19G21 | 0.06 | 
| 8 | 112.14 | 29.0 | 20DT-17G | 0.590868 | 
| 9 | 112.2 | 29.08 | 22G-82 | 0.36 | 
| 10 | 112.2 | 29.66 | 22G-90 | 0.06 | 
| 11 | 112.24 | 29.27 | 22G-88 | 0.51 | 
| 12 | 112.26 | 29.18 | 22G-85 | 0.310593 | 
| 13 | 112.26 | 29.59 | DT02G | 0.53 | 
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | 
| 192 | 113.65 | 30.17 | 11JH031 | 0.11 | 
| 193 | 113.69 | 30.09 | 11JH161 | 0.08 | 
| 194 | 113.7 | 30.15 | 22G-67 | 0.47 | 
| 195 | 113.7 | 30.39 | 11JH057 | 0.15 | 
| 196 | 113.72 | 30.05 | 11JH182 | 0.11 | 
| 197 | 113.75 | 30.29 | 22G-66 | 0.82 | 
| 198 | 113.77 | 30.07 | 11JH183 | 0.07 | 
| 199 | 113.8 | 30.1 | 11JH185 | 0.36 | 
| 200 | 113.84 | 30.06 | 11JH180 | 0.12 | 
| 201 | 113.87 | 30.14 | 22G-68 | 0.2 | 
| 202 | 113.95 | 30.17 | 18G-40 | 0.3 | 
| 203 | 114.0 | 30.13 | 22G-69 | 0.288669 | 
改列名
select(df, :lon => :new_lon, :)203×8 DataFrame
178 rows omitted
| Row | new_lon | site | lon | lat | Eh | V | Ni | Ba | 
|---|---|---|---|---|---|---|---|---|
| Float64 | String15 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | |
| 1 | 111.8 | 19G26 | 111.8 | 29.07 | 33.2 | 0.08 | 1.55 | 126.99 | 
| 2 | 111.93 | 22G-80 | 111.93 | 28.94 | 163.6 | 0.45 | 2.77 | 71.83 | 
| 3 | 111.95 | 19G22 | 111.95 | 28.98 | -48.0 | 0.17 | 1.18 | 161.81 | 
| 4 | 111.98 | 22G-83 | 111.98 | 29.11 | 64.8 | 0.25 | 0.59 | 136.21 | 
| 5 | 112.03 | 22G-81 | 112.03 | 29.04 | 143.1 | 0.97 | 1.83 | 124.54 | 
| 6 | 112.07 | 20DT-19G | 112.07 | 29.09 | 26.0 | 0.853692 | 1.28 | 173.21 | 
| 7 | 112.14 | 19G21 | 112.14 | 28.87 | 143.0 | 0.06 | 1.16 | 5.54 | 
| 8 | 112.14 | 20DT-17G | 112.14 | 29.0 | -60.8 | 0.590868 | 0.7 | 258.56 | 
| 9 | 112.2 | 22G-82 | 112.2 | 29.08 | 96.1 | 0.36 | 1.04 | 183.63 | 
| 10 | 112.2 | 22G-90 | 112.2 | 29.66 | -88.1 | 0.06 | 1.8 | 167.24 | 
| 11 | 112.24 | 22G-88 | 112.24 | 29.27 | 115.5 | 0.51 | 2.29 | 20.98 | 
| 12 | 112.26 | 22G-85 | 112.26 | 29.18 | 90.5 | 0.310593 | 4.08 | 476.34 | 
| 13 | 112.26 | DT02G | 112.26 | 29.59 | -29.3 | 0.53 | 2.16 | 234.38 | 
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | 
| 192 | 113.65 | 11JH031 | 113.65 | 30.17 | -54.3 | 0.11 | 0.69 | 279.53 | 
| 193 | 113.69 | 11JH161 | 113.69 | 30.09 | -54.3 | 0.08 | 0.63 | 213.16 | 
| 194 | 113.7 | 22G-67 | 113.7 | 30.15 | -54.3 | 0.47 | 5.19 | 136.8 | 
| 195 | 113.7 | 11JH057 | 113.7 | 30.39 | -81.3826 | 0.15 | 0.97 | 457.99 | 
| 196 | 113.72 | 11JH182 | 113.72 | 30.05 | -54.3 | 0.11 | 0.42 | 119.42 | 
| 197 | 113.75 | 22G-66 | 113.75 | 30.29 | -97.3 | 0.82 | 4.77 | 332.1 | 
| 198 | 113.77 | 11JH183 | 113.77 | 30.07 | -54.8787 | 0.07 | 0.44 | 155.31 | 
| 199 | 113.8 | 11JH185 | 113.8 | 30.1 | -54.7215 | 0.36 | 0.81 | 101.32 | 
| 200 | 113.84 | 11JH180 | 113.84 | 30.06 | -61.5239 | 0.12 | 0.57 | 258.18 | 
| 201 | 113.87 | 22G-68 | 113.87 | 30.14 | -55.6 | 0.2 | 4.7 | 163.95 | 
| 202 | 113.95 | 18G-40 | 113.95 | 30.17 | -149.0 | 0.3 | 2.15 | 514.11 | 
| 203 | 114.0 | 22G-69 | 114.0 | 30.13 | -99.0 | 0.288669 | 1.38 | 0.08 | 
11 尝试管道符
参考学习链接:Comparing dplyr vs DataFrames.jl
using Pipe@time @pipe df |>
  combine(_, :V => (x -> x) => :V_mean, :) |>
  (df -> begin
    df.new_col = df.V
    df
  end) |>
  filter(:V_mean => v -> v >0, _) |>
  sort(_, :new_col)  0.172564 seconds (818.78 k allocations: 40.826 MiB, 5.39% gc time, 99.71% compilation time: 1% of which was recompilation)193×9 DataFrame
168 rows omitted
| Row | V_mean | site | lon | lat | Eh | V | Ni | Ba | new_col | 
|---|---|---|---|---|---|---|---|---|---|
| Float64 | String15 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | |
| 1 | 0.01 | 12JH093 | 112.85 | 29.94 | -218.5 | 0.01 | 2.09 | 184.509 | 0.01 | 
| 2 | 0.02 | 18S-25G | 112.3 | 29.77 | -88.1 | 0.02 | 0.22 | 112.0 | 0.02 | 
| 3 | 0.04 | 12JH076 | 112.58 | 30.29 | -90.0 | 0.04 | 2.47 | 170.86 | 0.04 | 
| 4 | 0.04 | 18G-05 | 113.51 | 29.84 | 87.5 | 0.04 | 0.31 | 59.45 | 0.04 | 
| 5 | 0.05 | 22G-86 | 112.43 | 29.39 | -7.6 | 0.05 | 1.47 | 160.13 | 0.05 | 
| 6 | 0.05 | 22G-73 | 112.81 | 29.42 | -78.5 | 0.05 | 3.49 | 120.7 | 0.05 | 
| 7 | 0.05 | 18G-11 | 113.26 | 29.61 | -83.2 | 0.05 | 0.06 | 275.26 | 0.05 | 
| 8 | 0.0558746 | 22G-70 | 113.56 | 29.88 | -50.4 | 0.0558746 | 8.39 | 58.55 | 0.0558746 | 
| 9 | 0.06 | 19G21 | 112.14 | 28.87 | 143.0 | 0.06 | 1.16 | 5.54 | 0.06 | 
| 10 | 0.06 | 22G-90 | 112.2 | 29.66 | -88.1 | 0.06 | 1.8 | 167.24 | 0.06 | 
| 11 | 0.06 | 19G14 | 112.69 | 29.15 | -81.0 | 0.06 | 0.99 | 120.31 | 0.06 | 
| 12 | 0.07 | 18G-19 | 112.63 | 29.78 | -14.3 | 0.07 | 0.45 | 510.65 | 0.07 | 
| 13 | 0.07 | 18G-25 | 112.64 | 29.95 | -72.0 | 0.07 | 1.31 | 58.46 | 0.07 | 
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | 
| 182 | 0.92 | 22G-31 | 112.81 | 30.18 | -75.2 | 0.92 | 4.45 | 237.92 | 0.92 | 
| 183 | 0.92 | 22G-34 | 112.92 | 30.42 | -75.9 | 0.92 | 4.13 | 235.87 | 0.92 | 
| 184 | 0.97 | 22G-81 | 112.03 | 29.04 | 143.1 | 0.97 | 1.83 | 124.54 | 0.97 | 
| 185 | 0.97 | 22G-03 | 112.5 | 29.95 | -88.0 | 0.97 | 4.46 | 117.86 | 0.97 | 
| 186 | 1.09 | 12JH078 | 112.6 | 30.25 | -16.5 | 1.09 | 2.63 | 170.86 | 1.09 | 
| 187 | 1.09 | 22G-18 | 112.95 | 29.64 | -21.4 | 1.09 | 5.42 | 175.97 | 1.09 | 
| 188 | 1.2 | 22G-13 | 112.96 | 29.75 | -77.5 | 1.2 | 5.28 | 205.88 | 1.2 | 
| 189 | 1.27 | 12JH145 | 113.17 | 29.71 | -1.6 | 1.27 | 2.51 | 166.341 | 1.27 | 
| 190 | 1.36 | 22G-01 | 112.53 | 29.85 | -141.1 | 1.36 | 8.17 | 517.61 | 1.36 | 
| 191 | 1.44 | 22G-42 | 112.98 | 30.4 | -93.8 | 1.44 | 4.32 | 314.24 | 1.44 | 
| 192 | 1.48 | 22G-22 | 112.77 | 29.62 | 125.8 | 1.48 | 1.52 | 51.14 | 1.48 | 
| 193 | 1.88 | 22G-91 | 112.39 | 29.66 | 177.2 | 1.88 | 4.19 | 164.61 | 1.88 |