如何在 julia 中只更改一个列名

Nov*_*vic 6 rename dataframe julia

如果我有一个像这样的数据框:

test = DataFrame(A = [1,2,3] , B= [4,5,6])
Run Code Online (Sandbox Code Playgroud)

而我只想更改 的名称A,我该怎么办?我知道我可以一起更改所有列的名称,rename!但我需要一一重命名。原因是我hcat在循环中添加新列,并且每次都需要给它们唯一的名称。

Bog*_*ski 9

使用Pair语法:

julia> test = DataFrame(A = [1,2,3] , B= [4,5,6])
3×2 DataFrame
? Row ? A     ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?

julia> rename!(test, :A => :newA)
3×2 DataFrame
? Row ? newA  ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?

julia> test
3×2 DataFrame
? Row ? newA  ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?
Run Code Online (Sandbox Code Playgroud)

对于字符串,它是相同的:

3×2 DataFrame
? Row ? A     ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?

julia> rename!(test, "A" => "newA")
3×2 DataFrame
? Row ? newA  ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?

julia> test
3×2 DataFrame
? Row ? newA  ? B     ?
?     ? Int64 ? Int64 ?
???????????????????????
? 1   ? 1     ? 4     ?
? 2   ? 2     ? 5     ?
? 3   ? 3     ? 6     ?
Run Code Online (Sandbox Code Playgroud)