在熊猫数据框中以字符串格式对日期进行排序?

Zan*_*tum 2 python dataframe pandas

我有一个这样的数据框,如何排序。

  df = pd.DataFrame({'Date':['Oct20','Nov19','Jan19','Sep20','Dec20']})


        Date
    0   Oct20
    1   Nov19
    2   Jan19
    3   Sep20
    4   Dec20
Run Code Online (Sandbox Code Playgroud)

我熟悉日期排序列表(字符串)

 a.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?我应该拆分吗?

jez*_*ael 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
Run Code Online (Sandbox Code Playgroud)

详细资料

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]
Run Code Online (Sandbox Code Playgroud)