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

Pandas如何按含日期的列名对DataFrame列顺序进行排序

问题本质

你用错了pandas方法:sort_values()的作用是根据指定列的单元格值对行做排序,从来不是用来调整列排列顺序的,和列名是不是日期格式没有任何关系。你传入列顺序列表当参数的用法本身不符合该方法的设计逻辑,自然达不到预期效果。

正确实现方式

pandas调整自定义列顺序不需要调用特殊排序方法,直接传入目标顺序的列名列表做列索引即可,该方法对所有格式的列名(包括日期字符串、datetime类型列名)都生效,不存在识别问题。

对应代码如下:

# 定义目标列顺序
order = ['more data', 'data', '2011-01-01', '2010-01-01']
# 按指定顺序重排列
df = df[order]

执行后得到的DataFrame列顺序完全和你定义的order列表一致,结构如下:

more datadata2011-01-012010-01-01
xyzabc456123
abcxyz456123

补充说明:如果你的列名实际是datetime时间类型而非字符串,只需要把order列表里的对应元素也转成匹配的datetime对象,上述写法依然可以正常运行,不会出现列名识别失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:48:19