python - How to sort pandas dataframe by two date columns
问题描述
I have a pandas dataframe like this:
column_year column_Month a_integer_column
0 2014 April 25.326531
1 2014 August 25.544554
2 2015 December 25.678261
3 2014 February 24.801187
4 2014 July 24.990338
... ... ... ...
68 2018 November 26.024931
69 2017 October 25.677333
70 2019 September 24.432361
71 2020 February 25.383648
72 2020 January 25.504831
I now want to sort year column first and then month column, like this below:
column_year column_Month a_integer_column
3 2014 February 24.801187
0 2014 April 25.326531
4 2014 July 24.990338
1 2014 August 25.544554
2 2015 December 25.678261
... ... ... ...
69 2017 October 25.677333
68 2018 November 26.024931
70 2019 September 24.432361
72 2020 January 25.504831
71 2020 February 25.383648
How do i do this?
解决方案
Let us try to_datetime
+ argsort
:
df=df.iloc[pd.to_datetime(df.column_year.astype(str)+df.column_Month,format='%Y%B').argsort()]
column_year column_Month a_integer_column
3 2014 February 24.801187
0 2014 April 25.326531
4 2014 July 24.990338
1 2014 August 25.544554
2 2015 December 25.678261
推荐阅读
- javascript - 重置引导输入微调器单击按钮
- python - 我是否使用“rescale=1./255”?构建VGG-like CNN
- c - 如何将 .bin 文件转换为人类可读的字符串?
- rust - 如何使用多个级别的特征
- python - 如何在不引用旧列名且不创建新数据框的情况下更改列名?
- sql-server - 将 Excel 文件导入 SSMS 但文本被截断
- python - 在 Python 模式下从处理中导出 gif
- python - 如何在 Python 中为每个人获取具有最常见特征的人的列表?
- java - 如何在不包括 i 的情况下打印 i 和 b 之间的数字
- php - woocommerce_order_item_name 过滤器挂钩中无法识别自定义分类法