因此,我的时间戳如下所示:
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_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]
关于python - 如何按 Pandas 中的时间戳排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462935/