如何按日期d-month-y在熊猫中按日期排序?

时间:2019-08-14 06:04:46

标签: python pandas date

我有一列日期如下:10-apr-18。 当我转换df或对其进行任何处理时,pandas会按日期(第一个数字)自动对该列进行排序,因此它不是按时间顺序排列的。

我尝试使用to_datetime,但是由于月份是字符串,因此无法使用。

如何将其转换为日期或取消自动排序(我的原始数据已经按照正确的顺序排列了。)

2 个答案:

答案 0 :(得分:2)

我建议使用to_datetime和参数format转换为日期时间:

df = pd.DataFrame({'dates':['10-may-18','10-apr-18']})
#also working for me
#df['dates'] = pd.to_datetime(df['dates'])
df['dates'] = pd.to_datetime(df['dates'], format='%d-%b-%y')

df = df.sort_values('dates')
df['dates'] = df['dates'].dt.strftime('%d-%B-%y')
print (df)
         dates
1  10-April-18
0    10-May-18

df = pd.DataFrame({'dates':['10-may-18','10-apr-18']})
#also working for me
#df['dates'] = pd.to_datetime(df['dates'])
df['datetimes'] = pd.to_datetime(df['dates'], format='%d-%b-%y')

df = df.sort_values('datetimes')

df['full'] = df['datetimes'].dt.strftime('%d-%B-%y')
print (df)
       dates  datetimes         full
1  10-apr-18 2018-04-10  10-April-18
0  10-may-18 2018-05-10    10-May-18

答案 1 :(得分:0)

df['dates'] = pd.to_datetime(df['dates'], format='%d-%b-%y').dt.strftime('%d/%B/%y')