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

Pandas按datetime排序异常:仅按日期排序未按时分秒排序

解决Pandas DataFrame按datetime列排序时分秒异常的问题

排查步骤与解决方案:

  • 确认排序结果是否生效
    df.sort_values(by='dttime')默认返回一个新的排序后DataFrame,不会修改原数据。你需要要么重新赋值给原变量,要么启用原地修改:

    # 方式1:重新赋值保存排序结果
    df = df.sort_values(by='dttime')
    # 方式2:原地修改并重置索引
    df.sort_values(by='dttime', inplace=True, ignore_index=True)
    
  • 验证datetime列的解析正确性
    检查dttime列是否真的正确解析了时分秒信息,避免格式参数错误导致的解析偏差:

    # 查看转换后的时间详情
    print(df['dttime'].head())
    # 对比原始整数与转换后的时间字符串
    df['raw_dttime_str'] = df['dttime'].dt.strftime('%y%m%d%H%M%S')
    print(df[['raw_dttime_str', 'dttime']].head())
    

    注意:如果原始时间戳的年份是四位格式(如20231005123456),需将转换格式改为%Y%m%d%H%M%S(大写Y),否则年份会被错误解析。

  • 检查无效时间值
    若原始整数的时分秒部分超出合理范围(如小时=25、分钟=61),Pandas会将其解析为NaT(无效时间),这类值会集中排在排序结果的首尾。可通过以下代码排查:

    # 筛选出无效时间行
    invalid_rows = df[df['dttime'].isna()]
    print(invalid_rows)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:40:38