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

Pandas按日期对DataFrame排序时sort_values结果不符合预期如何解决

问题原因

你的date列当前为字符串类型,sort_values默认会按照字符的字典序排序,而非实际日期的先后逻辑,才会出现排序不符合预期的问题。比如示例中的12/12/2020字符串会被判定为小于14/11/2020,最终把12月的日期排到11月前面。

解决方法
  • 先将date列转换为pandas datetime类型,注意你的日期格式为日/月/年,需要指定dayfirst=True避免pandas识别错位:
import pandas as pd
po_dataset['date'] = pd.to_datetime(po_dataset['date'], dayfirst=True)
  • 再执行排序操作即可得到从旧到新的正确结果:
po_dataset = po_dataset.sort_values('date', ascending=True)

如果不想修改原date列的字符串格式,也可以在排序时临时转换日期格式,写法如下:

po_dataset = po_dataset.sort_values(by='date', key=lambda x: pd.to_datetime(x, dayfirst=True), ascending=True)
排序结果验证

转换后示例数据的正确排序结果如下:

Date
14/11/2020
28/11/2020
12/12/2020

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:04