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

如何使用pandas将时分字符串转为无默认年份的datetime并完成排序?

首先明确:Python标准库datetime类型、pandas的datetime64类型本身的结构就要求必须包含年、月、日信息,不存在仅保留时分的datetime格式对象,你可以根据使用场景选择以下两种常用实现方案:

方案1:获取可排序、可比较的时分时间类型

直接使用datetime.time类型即可,该类型本身支持大小比较和排序,完全满足你构建字典、时间匹配的需求:

from datetime import datetime

# 从你的时分字符串列表转换为time类型后排序
sorted_time_list = sorted([datetime.strptime(t_str, "%H:%M").time() for t_str in lista])

输出结果示例:

[datetime.time(1, 0), datetime.time(5, 45), datetime.time(7, 15), datetime.time(11, 30), ..., datetime.time(21, 0)]

方案2:获取有序的时分字符串

%H:%M格式的24小时制固定长度字符串,天然字典序和时间顺序完全一致,不需要转时间类型直接排序即可:

sorted_time_str = sorted(lista)

输出结果示例:

['01:00', '05:45', '07:15', '11:30', '15:30', '17:00', '18:30', '19:00', '19:15', '21:00']

优化建议

你原代码中用set去重会打乱原有顺序,其实可以直接从原DataFrame索引一步得到有序去重的时分结果,效率更高:

sorted_time = perfis.index.strftime('%H:%M').drop_duplicates().sort_values().tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:36:04