Julia中如何重排DataFrame最后6列且不影响其余列顺序?
解决Julia DataFrame调整最后6列顺序的问题
有两种简洁的方法可以避免手动写出所有前面的列:
方法一:按列索引拆分拼接
先获取所有列名,提取除最后6列外的前面所有列,再拼接你需要的目标列顺序:
# 定义最后6列的目标顺序 target_cols = [:A, :B, :C, :D, :E, :F] # 组合新的列顺序:前面所有列 + 目标列 new_order = vcat(names(df)[1:end-6], target_cols) # 重新排序DataFrame df = df[:, new_order]
方法二:利用Not函数自动排除目标列(更简洁)
借助DataFrames.jl的Not函数,可以直接选中除了这6列之外的所有列,再拼接目标列顺序,无需关心前面的列数:
using DataFrames # 确保已加载DataFrames包 target_cols = [:A, :B, :C, :D, :E, :F] df = df[:, [Not(target_cols); target_cols]]
这个方法的优势是不用计算前面的列数,不管你的DataFrame是160列还是其他列数,只要最后6列是这几个,都能直接套用。
注意:如果你的列名是字符串类型,只需要把[:A, :B,...]换成["A", "B",...]即可。
内容的提问来源于stack exchange,提问作者math_student926
相关产品推荐
相关产品推荐

