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

如何按日历顺序对Pandas数据集的Date列进行排序?

按日历顺序对Pandas日期列排序的解决方法

你的问题根源在于Date列当前是字符串类型,直接调用sort_values会按字母顺序排序,而非日历时间顺序。解决思路是先将字符串格式的日期转换为Pandas可识别的datetime类型,再执行排序操作。

具体步骤:

  • 将Date列转换为datetime格式
    使用pd.to_datetime()函数,Pandas可以自动识别你提供的日期字符串格式:
    df['Date'] = pd.to_datetime(df['Date'])
    
  • 按转换后的日期列排序
    此时再调用sort_values,就会按照日历时间顺序(更早的日期在前)排序:
    df_sorted = df.sort_values(by='Date')
    

完整代码示例:

import pandas as pd 
from io import StringIO

data="""
Date| Link
April 1, 2009, 12:00 PM| 4
March 27, 2009, 12:00 PM| 8
April 29, 2009, 12:00 PM| 15  
May 12, 2009, 12:00 PM| 9 
June 9, 2009, 12:00 PM| 11 
July 3, 2009, 12:00 PM| 329
June 16, 2009, 12:00 PM| 12
September 26, 2009, 12:00 PM| 48
October 4, 2009, 12:00 PM| 49
August 15, 2009, 12:00 PM| 10
November 30, 2009, 12:00 PM| 29
December 23, 2009, 12:00 PM| 68
April 1, 2009, 12:00 PM| 4  
May 12, 2010, 12:00 PM| 9 
September 26, 2012, 12:00 PM| 48 
"""

df = pd.read_csv(StringIO(data), delimiter='|')

# 转换日期列类型
df['Date'] = pd.to_datetime(df['Date'])
# 按日历顺序排序
df_sorted = df.sort_values(by='Date')

# 查看排序结果
print(df_sorted)

补充说明:

如果你的日期格式比较特殊,pd.to_datetime无法自动识别,可以通过format参数手动指定格式,针对你的日期格式可写成:

df['Date'] = pd.to_datetime(df['Date'], format='%B %d, %Y, %I:%M %p')

这种方式能确保日期转换的准确性,避免自动识别出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:05:26