使用以下代码,我希望数据帧(行)从最旧到最新 时间戳进行排序。像这样...
#raw_dataframe# #sorted dataframe#
Symbol tagdatetime Symbol tagdatetime
0 A 2020-03-01 01:00:00 0 B 2020-01-01 01:00:00
1 B 2020-01-01 01:00:00 ===> 1 A 2020-03-01 01:00:00
2 C 2020-06-01 01:00:00 2 C 2020-06-01 01:00:00
但是对于以下代码,实际输出未排序
import pandas as pd
df = pd.DataFrame( {'Symbol':['A','B','C'] ,
'tagdatetime':['2020-03-01 01:00:00','2020-01-01 01:00:00','2020-06-01 01:00:00']})
print(df,"\n-------------------------------")
df['tagdatetime'] = pd.to_datetime(df['tagdatetime'], format="%Y-%m-%d %H:%M:%S").sort_values()
print(df)
Output:
Symbol tagdatetime
0 A 2020-03-01 01:00:00
1 B 2020-01-01 01:00:00
2 C 2020-06-01 01:00:00
-------------------------------
Symbol tagdatetime
0 A 2020-03-01 01:00:00
1 B 2020-01-01 01:00:00
2 C 2020-06-01 01:00:00
我尝试了许多其他solutions,但似乎没有一个对我有用。 我在哪里做错了? 当我有两个或更多带有相同时间戳的行时,会发生什么排序?
请回答。
答案 0 :(得分:0)
使用以下代码:
df = pd.DataFrame( {'Symbol':['A','B','C'] ,
'tagdatetime':['2020-03-01 01:00:00','2020-01-01 01:00:00','2020-06-01 01:00:00']})
df['tagdatetime'] = pd.to_datetime(df['tagdatetime'], format='%Y-%m-%d %H:%M:%S')
df.sort_values(by='tagdatetime', inplace=True)
print(df)
您需要先将tagdatetime
列转换为日期时间格式,然后再对tagdatetime
列进行排序,然后再对值进行排序