【发布时间】:2022-01-05 08:30:00
【问题描述】:
我有一个熊猫数据框,其中包含日期作为第一列,我想对其进行排序。 发生的情况是它按日期排序,但打乱了分钟的顺序,例如这是原始文本文件。
12/20/20, 16:38 - d
12/20/20, 16:37 - a
12/20/20, 16:37 - b
12/20/20, 16:37 - c
在转换为 pandas 日期时间、创建列、创建数据框、对该数据框进行排序后,我再次将其导出到另一个文本文件,现在看起来像这样。
12/20/20, 16:37 - c
12/20/20, 16:37 - a
12/20/20, 16:37 - b
12/20/20, 16:38 - d
它并没有颠倒顺序,它只是随机组织它,因为我没有这个数据的秒数,具有相同限制的多行被打乱,这不应该发生。
我目前对该问题的解决方案是以某种方式为所有具有相同时间值的单独行分配一个特殊索引,直到分钟,然后在数据帧按日期排序后,再次使用这些索引对其进行排序.
看起来像这样:
12/20/20, 16:38 - d - 1
12/20/20, 16:37 - a - 1
12/20/20, 16:37 - b - 2
12/20/20, 16:37 - c - 3
那么当我排序后再次得到这个结果时,
12/20/20, 16:37 - c - 3
12/20/20, 16:37 - a - 1
12/20/20, 16:37 - b - 2
12/20/20, 16:38 - d - 1
我可以用额外的索引对其进行排序以获得所需的结果。
12/20/20, 16:37 - a - 1
12/20/20, 16:37 - b - 2
12/20/20, 16:37 - c - 3
12/20/20, 16:38 - d - 1
但我意识到这很乏味,并希望有一个更优雅的解决方案!谢谢!
【问题讨论】:
-
如果将
kind='stable'添加到sort_values调用中会怎样? -
是的,行得通!,也 kind = 'mergesort' 也行
标签: python pandas dataframe date datetime