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

如何对pandas dataframe列按列名前4个字符后的内容字母排序

你可以通过自定义排序规则,忽略列名前4个前缀字符后再排序调整列顺序,两种实现方法如下:

方法1:使用sort_index的key参数(适用于pandas 1.1.0及以上版本)

直接给sort_index传入规则函数即可:

# axis=1指定按列排序,key函数取每个列名第4位之后的内容作为排序依据
df_sorted = df.sort_index(axis=1, key=lambda col: col.str[4:])

方法2:手动生成排序列名(兼容所有pandas版本)

先对列名列表自定义排序,再直接用排序后的列名重构DataFrame:

# 对列名排序,规则为取每个列名第4位之后的内容比较
sorted_cols = sorted(df.columns, key=lambda x: x[4:])
# 按新顺序重排列
df_sorted = df[sorted_cols]

两种方法输出的结果均符合你的预期,列名截掉前4位后排序时,相同后缀的new_xxx和old_xxx会自动相邻排列,最终列顺序为new_col、old_col、new_elements、old_elements、new_val、old_val。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:18:05