Dataframe 如何在Julia数据帧上执行就地广播操作?
我有一个数据框,其中只有一列“Name”,我想将该值适当地小写 现有的小写广播似乎创建了一个新的数据帧,作为一个就地修改,我如何做到这一点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
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)
相同。