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

如何在DataFrame中反转列序列同时保留列对结构?

按列组反转DataFrame列顺序(保留列对)

假设你的DataFrame列序列为:

['e', 'f', 'c', 'd', 'a', 'b']

需要反转列组的顺序但保留每组内的列对,得到目标序列:

['a', 'b', 'c', 'd', 'e', 'f']

当列名不确定、仅需将最后一组列对移到最前时,可以通过按列分组后反转组顺序的方式实现,无需依赖具体列名:

方法一:纯Python列表操作

# 获取当前列列表
cols = df.columns.tolist()
# 按每2个元素为一组拆分
col_groups = [cols[i:i+2] for i in range(0, len(cols), 2)]
# 反转组的顺序,再展开为一维列表
new_col_order = [col for group in reversed(col_groups) for col in group]
# 重新排列DataFrame的列
df = df[new_col_order]

方法二:用Numpy简化操作

如果习惯用Numpy,代码可以更简洁:

import numpy as np

cols = df.columns
# 重塑为二维数组(每行一组列对),反转行顺序后再展平
new_col_order = cols.reshape(-1, 2)[::-1].flatten().tolist()
df = df[new_col_order]

这两种方法都不依赖具体列名,只要列是两两成对的结构,就能自动将最后一组移到最前,同时保留每组内的列顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:54:56