Dataframe 如何在Julia数据帧上执行就地广播操作?

Dataframe 如何在Julia数据帧上执行就地广播操作?,dataframe,julia,Dataframe,Julia,我有一个数据框,其中只有一列“Name”,我想将该值适当地小写 现有的小写广播似乎创建了一个新的数据帧,作为一个就地修改,我如何做到这一点 julia> df 5×1 DataFrame │ Row │ Name │ │ │ String │ ├─────┼───────────┤ │ 1 │ Mary │ │ 2 │ Anna │ │ 3 │ Emma │ │ 4 │ Elizabeth │ │ 5 │ Minni

我有一个数据框,其中只有一列“Name”,我想将该值适当地小写

现有的小写广播似乎创建了一个新的数据帧,作为一个就地修改,我如何做到这一点

julia> df
5×1 DataFrame
│ Row │ Name      │
│     │ String    │
├─────┼───────────┤
│ 1   │ Mary      │
│ 2   │ Anna      │
│ 3   │ Emma      │
│ 4   │ Elizabeth │
│ 5   │ Minnie    │

julia> lowercase.(df.Name)
5-element Array{String,1}:
 "mary"
 "anna"
 "emma"
 "elizabeth"
 "minnie"

julia> df
5×1 DataFrame
│ Row │ Name      │
│     │ String    │
├─────┼───────────┤
│ 1   │ Mary      │
│ 2   │ Anna      │
│ 3   │ Emma      │
│ 4   │ Elizabeth │
│ 5   │ Minnie    │

以下是三个基本选项:

julia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);

julia> @. df.Name = lowercase(df.Name); # work on a single column in place

julia> df
3×1 DataFrame
│ Row │ Name   │
│     │ String │
├─────┼────────┤
│ 1   │ mary   │
│ 2   │ anna   │
│ 3   │ emma   │

julia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);

julia> @. df = lowercase.(df); # work on a whole data frame in place

julia> df
3×1 DataFrame
│ Row │ Name   │
│     │ String │
├─────┼────────┤
│ 1   │ mary   │
│ 2   │ anna   │
│ 3   │ emma   │

julia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);

julia> transform!(df, :Name => ByRow(lowercase) => :Name); # this time the column gets replaced instead of in-place modified

julia> df
3×1 DataFrame
│ Row │ Name   │
│     │ String │
├─────┼────────┤
│ 1   │ mary   │
│ 2   │ anna   │
│ 3   │ emma   │

什么是?。maco?它将广播应用于表达式中的所有函数调用,例如,在最上面的示例中,它与
df.Name.=lowercase.(df.Name)
相同。