创建新列

Julia 中的数据操作

Katerina Zahradova

Instructor

按列 vs. 按行

按列

  • 所有行得到同一个数值
  • 如:均值、中位数、求和…

按行

  • 值取决于各行的数据

=> 使用 ByRow()

Julia 中的数据操作

鳍长换算为英寸

# 将毫米转换为英寸
transform(penguins, :flipper_length_mm => ByRow(x -> x/25.4) => :flipper_length_inch)
333x8 DataFrame
Row species   island    ...  body_mass_g  sex      flipper_lenght_inch
    String15  String15  ...  Int64        String7  Float64 
___________________________________________________________________
1   Adelie    Torgersen ...  3750         MALE     7.12598
2   Adelie    Torgersen ...  3800         FEMALE   7.32283
...
Julia 中的数据操作

喙深与喙长之比

# 选择列并计算它们的比值
select(penguins,:culmen_depth_mm, :culmen_length_mm, 
   [:culmen_depth_mm, :culmen_length_mm] => ByRow((x, y) -> x/y) => :culmen_ratio)
333x3 DataFrame
Row  culmen_depth_mm  culmen_length_mm  culmen_ratio
     Float64          Float64           Float64
_____________________________________________________
1    18.7             39.1              0.478261
2    17.4             39.5              0.440506
...
Julia 中的数据操作

由向量创建新列

# 待添加的向量 id_vec


# 使用 [] 和 : penguins[:, :id_colon] = id_vec
# 使用 [] 和 ! penguins[!, :id_exclamation] = id_vec
# 使用 . penguins.id_dot = id_vec
Julia 中的数据操作

是否复制

penguins[:, :id_colon] = id_vec
penguins[!, :id_exclamation] = id_vec
penguins.id_dot = id_vec

# 更改第一个元素
id_vec[1] = 27
select(penguins, :species, r"id")
333x4 DataFrame
Row  species   id_colon  id_exclamation  id_dot
     String15  Int64     Int64           Int64
_____________________________________________________
1    Adelie    25        27              27
...
Julia 中的数据操作

是否复制

penguins[:, :id_colon] = id_vec        # 将值复制到 DataFrame
penguins[!, :id_exclamation] = id_vec  # 引用 id_vec
penguins.id_dot = id_vec               # 引用 id_vec

# 更改第一个元素
id_vec[1] = 27
select(penguins, :species, r"id")
333x4 DataFrame
Row  species   id_colon  id_exclamation  id_dot
     String15  Int64     Int64           Int64
_____________________________________________________
1    Adelie    25        27              27
...
Julia 中的数据操作

Passons à la pratique !

Julia 中的数据操作

Preparing Video For Download...