我有一个包含单列“名称”的数据框,我想就地小写该值。
\n现有的小写广播似乎创建了一个新的数据帧,我该如何将其作为就地修改?
\njulia> df\n5\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 String \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 Mary \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 Anna \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 Emma \xe2\x94\x82\n\xe2\x94\x82 4 \xe2\x94\x82 Elizabeth \xe2\x94\x82\n\xe2\x94\x82 5 \xe2\x94\x82 Minnie \xe2\x94\x82\n\njulia> lowercase.(df.Name)\n5-element Array{String,1}:\n "mary"\n "anna"\n "emma"\n "elizabeth"\n "minnie"\n\njulia> df\n5\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 String \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 Mary \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 Anna \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 Emma \xe2\x94\x82\n\xe2\x94\x82 4 \xe2\x94\x82 Elizabeth \xe2\x94\x82\n\xe2\x94\x82 5 \xe2\x94\x82 Minnie \xe2\x94\x82\nRun Code Online (Sandbox Code Playgroud)\n
以下是三个基本选项:
\njulia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);\n\njulia> @. df.Name = lowercase(df.Name); # work on a single column in place\n\njulia> df\n3\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 String \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 mary \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 anna \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 emma \xe2\x94\x82\n\njulia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);\n\njulia> @. df = lowercase.(df); # work on a whole data frame in place\n\njulia> df\n3\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 String \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 mary \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 anna \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 emma \xe2\x94\x82\n\njulia> df = DataFrame(Name = ["Mary", "Anna", "Emma"]);\n\njulia> transform!(df, :Name => ByRow(lowercase) => :Name); # this time the column gets replaced instead of in-place modified\n\njulia> df\n3\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 String \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 mary \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 anna \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 emma \xe2\x94\x82\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |