You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas调整列顺序:将最后一列移至数据框中间

如何将DataFrame最后一列移至中间位置

我懂你的痛点啦——你已经能取出前7列和最后一列,但不知道怎么把剩下的列也整合进来。其实只需要把列索引拆成三部分再拼接就行,咱们一步步解决:

针对你的示例场景

你的示例有15列,要把col15放到col7后面。咱们可以把列位置分成三部分:

  • 前7列:range(7) → 对应col1到col7
  • 最后一列:[-1] → 对应col15
  • 中间剩余列:range(7, len(df.columns)-1) → 对应col8到col14(这里len(df.columns)-1是倒数第二列的索引,刚好排除最后一列)

把这三部分拼起来传给iloc,就能得到想要的列顺序:

# 拆分列索引
first_seven = list(range(7))
last_col = [-1]
middle_rest = list(range(7, len(df.columns)-1))

# 拼接成新的列顺序
new_order = first_seven + last_col + middle_rest

# 重新排列DataFrame
df_reordered = df.iloc[:, new_order]

运行后,df_reordered的列顺序就完全符合你的期望:col1 col2 col3 col4 col5 col6 col7 col15 col8 col9 col10 col11 col12 col13 col14

通用版(适配任意列数和插入位置)

如果你的DataFrame不是15列,或者想把最后一列放到其他位置(比如第k列之后),可以用这个通用写法:

# 定义要插入最后一列的位置:放到第k列之后,这里k=7
insert_after = 7

# 拆分索引
first_part = list(range(insert_after))
last_col = [-1]
middle_part = list(range(insert_after, len(df.columns)-1))

# 拼接并重新排列
new_order = first_part + last_col + middle_part
df_reordered = df.iloc[:, new_order]

另一种更直观的方式(用列名操作)

要是你觉得索引计算麻烦,直接操作列名更清晰:

# 把所有列名转成列表
col_names = df.columns.tolist()

# 取出最后一列的名字并从列表移除
last_col_name = col_names.pop()

# 在指定位置插入最后一列的名字(索引7的位置,就是第7列后面)
col_names.insert(7, last_col_name)

# 重新排列列
df_reordered = df[col_names]

这种方式不用算索引,直接对着列名操作,新手也能快速上手~

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 06:38:15