我有一个这样的数据框,如何排序。
df = pd.DataFrame({'Date':['Oct20','Nov19','Jan19','Sep20','Dec20']})
Date
0 Oct20
1 Nov19
2 Jan19
3 Sep20
4 Dec20
我熟悉排序日期(字符串)的列表
a.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))
有什么想法吗?我应该拆分吗?
答案 0 :(得分:5)
首先将列转换为日期时间,然后按Series.argsort
获取排序值的位置,该值用于DataFrame.iloc
进行变更排序:
df = df.iloc[pd.to_datetime(df['Date'], format='%b%y').argsort()]
print (df)
Date
2 Jan19
1 Nov19
3 Sep20
0 Oct20
4 Dec20
详细信息:
print (pd.to_datetime(df['Date'], format='%b%y'))
0 2020-10-01
1 2019-11-01
2 2019-01-01
3 2020-09-01
4 2020-12-01
Name: Date, dtype: datetime64[ns]