假设我有一个像这样的DataFrame:
julia> df = DataFrame(a = [1,2,3], b = [3,4,5])
3×2 DataFrames.DataFrame
? Row ? a ? b ?
???????????????
? 1 ? 1 ? 3 ?
? 2 ? 2 ? 4 ?
? 3 ? 3 ? 5 ?
Run Code Online (Sandbox Code Playgroud)
我如何随后更改列的顺序,以便列:b在列之前:a?
它很简单,但是我花了一段时间才发现它,所以我想我会在这里发布它:
julia> df = df[[:b, :a]]
3×2 DataFrames.DataFrame
? Row ? b ? a ?
???????????????
? 1 ? 3 ? 1 ?
? 2 ? 4 ? 2 ?
? 3 ? 5 ? 3 ?
Run Code Online (Sandbox Code Playgroud)
如果你想要更快,你可以写
df[[2, 1]]
Run Code Online (Sandbox Code Playgroud)
如果要进行更新df,可以分两步完成:
df[1], df[2] = df[2], df[1]
names!(df, [:b, :a])
Run Code Online (Sandbox Code Playgroud)
哪个更快.
编辑:permutecols!DataFrames.jl版本0.11.7提供了一个新功能,以便您可以就地重新排序列:
permutecols!(df, [:b, :a])
Run Code Online (Sandbox Code Playgroud)