如何对Pandas中从DataFrame获取的DatetimeArray进行排序?
解决DatetimeArray排序的几种实用方法
以下是几个直接可行的方案:
一步到位:获取唯一值并排序
不用单独提取唯一值再处理,直接对原日期列去重后排序,代码更简洁:sorted_unique_dates = data['date'].drop_duplicates().sort_values()若需要DatetimeArray或numpy数组格式,只需追加
.array或.to_numpy()即可。对已有的DatetimeArray排序
如果你已经拿到了unique_dates这个DatetimeArray,有两种快速排序方式:- 转成Series后排序,再转回DatetimeArray:
sorted_dates = pd.Series(unique_dates).sort_values().array - 直接用numpy排序:
DatetimeArray兼容numpy排序操作,执行后返回排序后的DatetimeArray:import numpy as np sorted_dates = np.sort(unique_dates)
- 转成Series后排序,再转回DatetimeArray:
转成numpy数组再排序
你提到想转成numpy数组处理,只需调用.to_numpy()转换后再排序即可:np_dates = unique_dates.to_numpy() sorted_np_dates = np.sort(np_dates) # 如需转回DatetimeArray,执行 pd.DatetimeArray(sorted_np_dates)
内容的提问来源于stack exchange,提问作者Edy Bourne
相关产品推荐
相关产品推荐

