首页 > 解决方案 > 对 csv 文件中的列日期/时间数据进行排序

问题描述

希望得到您的专家帮助,我确实先检查了论坛。我是使用 repl.it (Python 3.8.2) 的初学者,第一次使用 pandas。提前致谢。

Python 无法将 Start_Date_Time 列从旧到新正确排序(即使它可以在 csv 文件中手动正确排序)。Python 输出显示它按单元格的第一个数字排序(澳大利亚格式:dd/mm/yyyy)

import pandas as pd
csv1 = pd.read_csv("scheduleList.csv")
sort_by_date = csv1.sort_values("Start_Date_Time")
print (sort_by_date)

下面是简化的 csv 数据。我不想拆分日期和时间的列,因为想稍后将其值与今天的日期和时间进行比较(计算差异)

Event   Start_Date_Time       Duration (mins)
A         1/06/2020 7:00            60
B         1/06/2020 12:30           60
C         2/06/2020 18:30           120
D         2/06/2020 16:00           45
E         5/06/2020 17:30           60
F        12/06/2020 12:30           60
G         7/06/2020 13:00           60
H         4/06/2020 18:00           60
I         6/06/2020 11:30           60
J         6/06/2020 8:00            180
K        11/06/2020 12:30           60
L        28/06/2020 11:00           300
M        18/07/2020 19:30           120
N        20/06/2020 9:00            60
O        31/05/2020 10:00           60
P         7/06/2020 10:00           60
Q        14/06/2020 10:00           60

标签: pythonsortingdate

解决方案


试试下面的代码。我添加了一行来解析Start_Date_Time为一DateTime列,并将方法的ascending参数设置为.sort_valuesFalse

import pandas as pd
csv1 = pd.read_csv("scheduleList.csv")
csv1['Start_Date_Time'] = pd.to_datetime(csv1['Start_Date_Time']) # change over here
sort_by_date = csv1.sort_values("Start_Date_Time",ascending=False) # change over here
print (sort_by_date)


推荐阅读