python - 如何按 Pandas 中的时间戳排序?

标签 python sorting pandas datetime dataframe

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

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

感谢任何帮助。

最佳答案

您只需确保正确表示格式规范,就可以使用 pd.to_datetimesort_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]

关于python - 如何按 Pandas 中的时间戳排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462935/

相关文章:

python - 在 PySpark UDF 中使用不同的数据框

python - 源代码生成

python - 调度一个类方法

c - 删除数组复制步骤时合并排序问题

python - 如何自定义排序要在 json.dumps 中使用的字典列表

python - 按最小值分组并使用另一列第 2 部分中的值填充 NA

python - spacy 中的词向量示例问题

c++ - 对一组数字进行排序最快的数据结构(和排序算法)是什么?

python - 具有多列的 groupby 以及 pandas 中的添加和频率计数

python - 如何运行仅在 Pandas 中选择第一次出现的条件查询?