Luc*_*pan 3 python sorting datetime pandas
设置
我有一个数据框,其中有一列包含字符串中的日期。
日期格式为日/月/年,例如 05/12/2018。
数据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
Run Code Online (Sandbox Code Playgroud)
问题
我希望按日期对此进行排序,这样我就可以,
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
Run Code Online (Sandbox Code Playgroud)
但按照这个例子,
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
Run Code Online (Sandbox Code Playgroud)
当月内如何撤销订单?
推荐的解决方案是将您的系列转换为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
Run Code Online (Sandbox Code Playgroud)
如果您坚持保留dtype 系列,则object可以在单独的操作中转换回字符串:
res['date_created'] = res['date_created'].dt.strftime('%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |