如何在Julia中对DataFrame的列按字母顺序排序?
如何在Julia中对DataFrame的列按字母顺序排序?
嗨,我来帮你搞定这个问题!你提到的给DataFrame列按字母顺序排序的需求,在Julia里其实有好几种简单实用的方法,不管列的数量多少都能轻松应对~
首先先还原一下你的示例DataFrame代码:
using DataFrames df = DataFrame(C = [1,2,3], A = [1,1,1], B = [3,2,1])
运行后得到的初始DataFrame是这样的:
3×3 DataFrame Row │ C A B │ Int64 Int64 Int64 ─────┼───────────────────── 1 │ 1 1 3 2 │ 2 1 2 3 │ 3 1 1
接下来给你介绍几种排序方法:
方法一:直接通过列名排序后索引
先获取按字母顺序排列的列名列表,再用这个列表重新索引DataFrame,代码如下:# 获取按字母排序的列名 sorted_cols = sort(names(df)) # 生成排序后的DataFrame df_sorted = df[:, sorted_cols]方法二:使用
select函数(更符合DataFrames.jl风格)select函数是DataFrames.jl里专门用来选择和重排列的工具,用法同样简单:df_sorted = select(df, sort(names(df)))
两种方法最终得到的排序后DataFrame都是你想要的A、B、C顺序:
3×3 DataFrame Row │ A B C │ Int64 Int64 Int64 ─────┼───────────────────── 1 │ 1 3 1 2 │ 1 2 2 3 │ 1 1 3
如果你想直接原地修改原DataFrame(不用创建新的变量),可以用select!函数(注意末尾的感叹号,Julia里惯例是带!的函数会修改输入对象):
select!(df, sort(names(df)))
这样执行后,原来的df就直接变成列按字母排序的版本了~
备注:内容来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

