如何更改Julia DataFrame中的列顺序?

时间:2017-12-07 12:01:48

标签: dataframe julia

假设我有一个像这样的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 │

如何随后更改列的顺序,以便列:b位于列:a之前?

3 个答案:

答案 0 :(得分:7)

这很简单,但是我花了一段时间才发现我,所以我想我会把它发布在这里:

julia> df = df[[:b, :a]]
3×2 DataFrames.DataFrame
│ Row │ b │ a │
├─────┼───┼───┤
│ 1   │ 3 │ 1 │
│ 2   │ 4 │ 2 │
│ 3   │ 5 │ 3 │

答案 1 :(得分:6)

如果你想要更快的速度,你可以写

self

如果您想更新 String whereStatement=Constant.daily.Col_Remove +" = ? AND " +Constant.daily.Col_carowners_id +" IN( " +idOfMergeData+" ) AND " +"strftime('%m', '"+Constant.daily.Col_date+"' ) = ? "; String [] ArgValues={"0",date_in_month}; ,可以分两步完成:

df[[2, 1]]

更快。

编辑:DataFrames.jl版本0.11.7提供了一个新函数df,以便您可以就地重新排序列:

df[1], df[2] = df[2], df[1]
names!(df, [:b, :a])

答案 2 :(得分:2)

通过使用DataFrames.jl中的selectselect!。例如:

julia> select(df, [:b, :a])
3×2 DataFrames.DataFrame
│ Row │ b │ a │
├─────┼───┼───┤
│ 1   │ 3 │ 1 │
│ 2   │ 4 │ 2 │
│ 3   │ 5 │ 3 │