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

Posted

技术标签:

【中文标题】使用 pandas 为每个日期时间值保留最新的行【英文标题】:Keep the latest of rows for every date-time value present using pandas 【发布时间】:2020-01-18 12:45:50 【问题描述】:

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

       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

【问题讨论】:

欢迎来到 SO @Amogh Katwe。提问前请阅读以下文章:***.com/help/how-to-ask df.groupby(df.DateTime.dt.day).tail(1)一样使用smth - 如果你有多年等,也可以按月/年分组。 【参考方案1】:

运行:

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

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

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

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

【讨论】:

谢谢。像魅力一样工作

以上是关于使用 pandas 为每个日期时间值保留最新的行的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 使用一些条件列值保留相同 ID 的最新行

Pandas Dataframe 保留日期在两个日期之间的行(单独的列)

使用 MultiIndex 时,如何将此 Pandas 列类型保留为日期时间?

为每个用户选择最新和第二个最新日期行

仅获取每个名称的最新日期的行

如何将 pandas 数据框导出为 json 并保留原始日期时间格式?