使用 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 Dataframe 保留日期在两个日期之间的行(单独的列)