如何按熊猫的时间戳排序?

发布于 2021-01-29 14:58:18

因此,我的时间戳如下所示:

20140804:10:00:13.281486

20140804:10:00:13.400113

20140804:10:00:13.555512

20140804:10:00:13.435677

我将它们放在DataFrame中,并且尝试按升序对其进行排序。我尝试了以下方法。但是,它似乎不起作用

df['yyyymmdd'] = pd.to_numeric(df['yyyymmdd'], errors='coerce')

df['hh'] = pd.to_numeric(df['hh'], errors='coerce')

df['mm'] = pd.to_numeric(df['mm'], errors='coerce')

df['ss'] = pd.to_numeric(df['ss'], errors='coerce')

df=df.sort(['yyyymmdd', 'hh','mm','ss'], ascending=[True, True,True,True])

任何帮助表示赞赏。

关注者
0
被浏览
87
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您只需要确保正确表示格式规范,就可以将pd.to_datetime其转换为之前的 实际
    日期时间sort_values

    pd.to_datetime(stamps, format="%Y%m%d:%H:%M:%S.%f").sort_values()
    

    这比分解组件中的时间戳并按照您的尝试执行多准则排序要直接得多。

    演示版

    >>> stamps
    0    20140804:10:00:13.281486
    1    20140804:10:00:13.400113
    2    20140804:10:00:13.555512
    3    20140804:10:00:13.435677
    dtype: object
    
    >>> pd.to_datetime(stamps, format="%Y%m%d:%H:%M:%S.%f").sort_values()
    0   2014-08-04 10:00:13.281486
    1   2014-08-04 10:00:13.400113
    3   2014-08-04 10:00:13.435677
    2   2014-08-04 10:00:13.555512
    dtype: datetime64[ns]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看