如何在Pandas中将object类型年月索引转为datetime并排序?
将Pandas Object类型年月索引转换为Datetime并排序
先看你提供的原索引:
import pandas as pd # 构造原索引 original_index = pd.Index(['Apr-20', 'Apr-21', 'Apr-22', 'Aug-20', 'Aug-21', 'Aug-22', 'Dec-20', 'Dec-21', 'Dec-22', 'Feb-21', 'Feb-22', 'Jan-21', 'Jan-22', 'Jan-23', 'Jul-20', 'Jul-21', 'Jul-22', 'Jun-20', 'Jun-21', 'Jun-22', 'Mar-20', 'Mar-21', 'Mar-22', 'May-20', 'May-21', 'May-22', 'Nov-20', 'Nov-21', 'Nov-22', 'Oct-20', 'Oct-21', 'Oct-22', 'Sep-20', 'Sep-21', 'Sep-22'], dtype='object', name='months')
转换并排序的具体操作:
- 转Datetime类型
用pd.to_datetime()处理,指定格式为'%b-%y':其中%b匹配英文缩写月份(如Apr、Jan),%y匹配两位年份。如果系统默认语言不是英文,需额外指定locale='en_US'确保解析正确:
datetime_index = pd.to_datetime(original_index, format='%b-%y', locale='en_US')
- 排序索引
直接调用sort_index()方法完成时间顺序排序:
sorted_datetime_index = datetime_index.sort_index()
完整代码示例
import pandas as pd # 原索引 original_index = pd.Index(['Apr-20', 'Apr-21', 'Apr-22', 'Aug-20', 'Aug-21', 'Aug-22', 'Dec-20', 'Dec-21', 'Dec-22', 'Feb-21', 'Feb-22', 'Jan-21', 'Jan-22', 'Jan-23', 'Jul-20', 'Jul-21', 'Jul-22', 'Jun-20', 'Jun-21', 'Jun-22', 'Mar-20', 'Mar-21', 'Mar-22', 'May-20', 'May-21', 'May-22', 'Nov-20', 'Nov-21', 'Nov-22', 'Oct-20', 'Oct-21', 'Oct-22', 'Sep-20', 'Sep-21', 'Sep-22'], dtype='object', name='months') # 转换为datetime类型 datetime_index = pd.to_datetime(original_index, format='%b-%y', locale='en_US') # 排序 sorted_index = datetime_index.sort_index() # 查看结果 print(sorted_index)
内容的提问来源于stack exchange,提问作者Abu Bakar Sayem
相关产品推荐
相关产品推荐

