设置
我有一个数据框,其中除其他外还有一列,其日期以字符串表示。
日期格式为日/月/年,例如2018年5月12日。
test_df
数据框看起来像
date_created
0 05/12/2018
1 04/12/2018
2 04/12/2018
3 03/12/2018
4 02/12/2018
5 30/11/2018
6 30/11/2018
7 30/11/2018
8 30/11/2018
9 29/11/2018
10 02/12/2018
11 29/11/2018
12 29/11/2018
问题
我希望按日期排序,例如,
date_created
0 05/12/2018
1 04/12/2018
2 04/12/2018
3 03/12/2018
10 02/12/2018
4 02/12/2018
5 30/11/2018
6 30/11/2018
7 30/11/2018
8 30/11/2018
9 29/11/2018
11 29/11/2018
12 29/11/2018
但紧跟this example,
test_df.sort_values(by='date_created', inplace=False, ascending=True)
给,
date_created
4 02/12/2018
10 02/12/2018
3 03/12/2018
1 04/12/2018
2 04/12/2018
0 05/12/2018
9 29/11/2018
11 29/11/2018
12 29/11/2018
5 30/11/2018
6 30/11/2018
7 30/11/2018
8 30/11/2018
如何在一个月内 取消订单?
答案 0 :(得分:2)
推荐解决方案是将您的系列转换为datetime
,然后进行排序:
df['date_created'] = pd.to_datetime(df['date_created'], dayfirst=True)
res = df.sort_values('date_created', ascending=False)
print(res)
date_created
0 2018-12-05
1 2018-12-04
2 2018-12-04
3 2018-12-03
4 2018-12-02
10 2018-12-02
5 2018-11-30
6 2018-11-30
7 2018-11-30
8 2018-11-30
9 2018-11-29
11 2018-11-29
12 2018-11-29
如果您坚持保留object
dtype系列,则可以然后通过单独的操作将其转换回字符串:
res['date_created'] = res['date_created'].dt.strftime('%d/%m/%Y')