【问题标题】:Keep the latest of rows for every date-time value present using pandas使用 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。提问前请阅读以下文章:stackoverflow.com/help/how-to-ask
  • df.groupby(df.DateTime.dt.day).tail(1)一样使用smth - 如果你有多年等,也可以按月/年分组。

标签: python pandas datetime analytics


【解决方案1】:

运行:

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

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

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

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

【讨论】:

  • 谢谢。像魅力一样工作
猜你喜欢
  • 2020-11-19
  • 1970-01-01
  • 2021-04-07
  • 2015-03-23
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多