【问题标题】:How to sort by timestamps in pandas?如何按熊猫中的时间戳排序?
【发布时间】:2017-07-16 17:16:16
【问题描述】:

所以,我的时间戳如下所示:

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])

感谢任何帮助。

【问题讨论】:

    标签: python sorting pandas datetime dataframe


    【解决方案1】:

    您只需要确保正确地表示格式规范,并且您可以使用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]
    

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 1970-01-01
      • 2019-12-18
      • 2021-06-22
      • 2022-10-17
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      相关资源
      最近更新 更多