使用 pandas 为存在的每个日期时间值保留最新的行

Keep the latest of rows for every date-time value present using pandas

我有一个看起来像这样的数据集,

       DateTime             Value
2019-06-05 12:10:31.467 
2019-06-05 12:27:30.383    13371.6  
2019-06-05 12:49:31.140    14020.4  
2019-06-05 14:58:16.503    14045.5  
2019-06-06 02:58:16.353    14095.8  
2019-06-06 13:21:49.570    14020.4  
2019-06-06 14:51:58.610    14095.8  
2019-06-06 14:58:13.093    13066.3  
2019-06-07 02:58:10.073    13273.4

我希望 pandas 代码只获取日期时间行的最新值,

       DateTime             Value   
2019-06-05 14:58:16.503    14045.5  
2019-06-06 14:58:13.093    13066.3  
2019-06-07 02:58:10.073    13273.4

运行:

df.groupby(df.DateTime.dt.date).last().reset_index(drop=True)

分组在 DateTime 的日期部分,每个分组的结果 组是最后一行。

添加最后部分(reset_index)删除(重复)日期 part - 分组键。

df.DateTime.dt.day 分组是错误的。如果来源很明显 数据包含不同月份的日期。在这种情况下,所有行都来自 每个月的第一天将是第一组的成员,依此类推。