我有一个带有单列“名称”的数据框,我想就地小写该值。
现有的小写广播似乎会创建一个新的数据帧,我该如何做为原位修改?
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 │
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句