Pandas 排序日期值;在数据帧中不';行不通
我在以下表格中创建了“在”列: 日期的格式如下:Pandas 排序日期值;在数据帧中不';行不通,pandas,sorting,date,Pandas,Sorting,Date,我在以下表格中创建了“在”列: 日期的格式如下:'%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]}
'%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)
它似乎只对日期进行排序,而不考虑月份。我该怎么办?它确实能正确排序:您的日期在这里是字符串。字符串按字典顺序排序。这意味着只有当第一个字符相同时,它才会看到第二个字符,以此类推 因此,您可能希望首先将列转换为datetime对象:
df['Created At'] = pd.to_datetime(df['Created At'], format='%d/%m/%Y')
不,它会正确排序:只有在两个日期相同的情况下,才会按月份排序。这是因为您的日期是字符串,它们是按字典顺序排序的。对不起,但我有一个问题:当您这样做时:format='%d/%m/%Y'结果是:年、月、日?例如:2017-02-02 2017-02-03@Gizelly:该格式指定如何将字符串解析为
datetime
对象。因此,一旦对其进行解析,datetime对象将表示为yyyy-mm-dd。这些不再是字符串,而是datetime对象。所以它使得计算日期等更加方便。哇!谢谢你教我一个新概念!我对词典学一无所知。你帮了我这么多!
>>> 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