【问题标题】:Sorting Dictionary of Dataframes that have timestamps as values以时间戳为值的数据帧的排序字典
【发布时间】:2021-03-12 15:49:52
【问题描述】:

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

我需要根据所有数据帧的 TIME 列的第一个值对字典进行排序,所以如果这张图片是示例,排序后我会根据时间戳按 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

编辑:- 输入字典的代码 sn-p 以便可以复制粘贴并用作示例..谢谢..!

我正在使用sorted(rail.items()),但我知道它不会按预期工作。 谁能帮帮我..!

【问题讨论】:

  • 您可以将您的数据框发布为代码 sn-p 而不是图像吗?让复制粘贴更容易
  • 完成..!这是庞大的数据,但我提供的操作数据很少..感谢您抽出时间..!
  • 您输入的预期输出是什么?
  • 所以 O/P 应该是 key1 dataframe first[05:12:00] 然后是 key2 dataframe[05:30:01] 然后是 key0 dataframe[10:00:28] 当我迭代字典

标签: python python-3.x pandas dataframe sorting


【解决方案1】:

您需要将 "key" 传递给排序函数 - 这里的键是指返回需要排序的函数 - 在您的情况下需要排序的是dataframe的第一项

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

【讨论】:

    【解决方案2】:

    @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
    

    我知道这很复杂,但感谢您抽出时间..!

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 2022-01-07
      • 2016-02-26
      • 2014-05-01
      • 2019-09-06
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多