我的格式为“创建于”列:
日期的格式为:'%d/%m/%Y'
->日,月,年
obj = {'Created At': ['01/01/2017', '01/02/2017', '02/01/2017',
'02/02/2017',
'03/01/2017', '03/02/2017','04/01/2017' ],
'Text': [1, 70,14,17,84,76,32]}
df = pd.DataFrame(data=obj)
我做到了,但是没用:
df.sort_values(by='Created At', inplace=True)
答案 0 :(得分:1)
它确实对它进行了正确排序:您的日期在这里是字符串。字符串按字典顺序排序。因此,这意味着只有第一个字符相同时,它才会查看第二个字符,依此类推。
因此,您可能希望首先将列转换为日期时间对象:
df['Created At'] = pd.to_datetime(df['Created At'], format='%d/%m/%Y')
然后我们可以对数据框进行排序,并获得:
>>> df.sort_values(by='Created At', inplace=True)
>>> df
Created At Text
0 2017-01-01 1
2 2017-01-02 14
4 2017-01-03 84
6 2017-01-04 32
1 2017-02-01 70
3 2017-02-02 17
5 2017-02-03 76