You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于日期列排序DataFrame并保持同ID分组的实现问题

按ID分组并组内日期降序排序的正确实现

原始数据结构

IDDate
1312023-09-06 08:14:01.455890
1312023-08-07 14:12:20.724080
1242023-09-08 14:12:20.724080
1312023-07-09 14:12:23.647488
1242023-09-03 14:12:20.724080

问题说明

你尝试的代码filtered_df.sort_values(by=['date','ID'],ascending=False, inplace = True)无法实现预期效果——它优先按date降序排序,会打乱相同ID的分组。你需要的是相同ID的记录归为一组,每组内按日期降序排列,目标结果如下:

IDDate
1312023-09-06 08:14:01.455890
1312023-08-07 14:12:20.724080
1312023-07-09 14:12:23.647488
1242023-09-08 14:12:20.724080
1242023-09-03 14:12:20.724080

正确解法

调整排序的优先级和各字段的排序方向:先按ID降序(保证同ID聚在一起),再按Date降序(组内按日期从新到旧排列)。代码如下:

# 直接修改原DataFrame
filtered_df.sort_values(by=['ID', 'Date'], ascending=[False, False], inplace=True)

# 或者生成新的DataFrame(不修改原数据)
sorted_df = filtered_df.sort_values(by=['ID', 'Date'], ascending=[False, False])

关键说明

  • 排序字段顺序:先写ID确保同ID的记录被分组,再写Date处理组内排序
  • ascending参数传入列表:对应每个排序字段的排序方向,[False, False]表示ID降序、Date降序,这样ID大的组会排在前面,组内最新日期的记录在前。

内容的提问来源于stack exchange,提问作者Andrew Pike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:35