将时间戳作为值的数据帧的排序字典

2024-05-14 08:44:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我根据每天需要执行的不同类型的工作创建了字典

我需要根据所有数据帧的时间列的第一个值对字典进行排序,所以如果这个pic是示例,在排序之后,我会根据时间戳以1,2,0的顺序获得键。 分配完之后,我删除了那个特定数据帧的片段,并且需要对字典进行排序。以下是我的数据框的外观:

[(0,
                             TIME
  CheckPoints                    
  DSG         2020-11-30 10:00:28
  SHD         2020-11-30 10:06:15
  SLAP        2020-11-30 10:10:16
  KG          2020-11-30 10:16:07
  RI          2020-11-30 10:42:18
  
  [76 rows x 1 columns]),
 (1,
                             TIME
  CheckPoints                    
  DEPOT       2020-11-30 05:12:00
  SLAP        2020-11-30 05:27:00
  SHD         2020-11-30 05:32:45
  DSG         2020-11-30 05:38:55
  DSG         2020-11-30 05:40:00
  
  [102 rows x 1 columns]),
 (2,
                             TIME
  CheckPoints                    
  DEPOT       2020-11-30 05:30:01
  SLAP        2020-11-30 05:45:01
  SHD         2020-11-30 05:49:23
  DSG         2020-11-30 05:55:33
  ATHA        2020-11-30 06:07:39

编辑:-插入字典的代码片段,以便可以复制粘贴并用作示例..谢谢

我正在使用sorted(rail.items()),但我知道这不会像预期的那样起作用。 有人能帮帮我吗


Tags: columns数据示例类型字典time排序时间
2条回答

您需要将一个“key”传递给排序函数-这里的key是指一个函数,该函数返回在上需要排序的内容-在您的情况下,在上需要排序的内容是^{的第一项

sorted(d, key=lambda x: d[x].reset_index().loc[0, 'TIME'])   

@Mortz谢谢你,伙计。。。 作为解决办法,我尝试了这一点,并按照要求工作。。很复杂,但不知怎么起了作用

for dum in d.keys():
        if d[dum].size != 0:
            temp.append(d[dum].iloc[0,0])  
    temp1 = sorted(temp)

然后匹配第一个元素,如:

for item in temp1:
        for x in d.keys():
            if d[x].size != 0:
                if d[x].iloc[0,0]==item:
                    break
                else :
                    continue

我知道这很复杂,但谢谢你抽出时间

相关问题 更多 >

    热门问题