根据每个唯一 ID 的最新时间戳过滤数据帧 [重复]
Posted
技术标签:
【中文标题】根据每个唯一 ID 的最新时间戳过滤数据帧 [重复]【英文标题】:Filtering dataframe based on latest timestamp for each unique id [duplicate] 【发布时间】:2018-03-21 19:06:12 【问题描述】:标题可能有点混乱,所以这里是一个例子:
发件人:
id | timestamp
1 | 2015-12-02 00:00:00
1 | 2015-12-03 00:00:00 <--- latest for id 1
2 | 2015-12-02 00:00:00
2 | 2015-12-04 00:00:00
2 | 2015-12-06 00:00:00 <--- latest for id 2
到这里:
id | timestamp
1 | 2015-12-03 00:00:00
2 | 2015-12-06 00:00:00
【问题讨论】:
df.groupby('id').tail(1)
?
【参考方案1】:
使用nth
In [599]: df.groupby('id', as_index=False).nth(-1)
Out[599]:
id timestamp
1 1 2015-12-03 00:00:00
4 2 2015-12-06 00:00:00
最好是max
,因为您需要最新日期。
In [601]: df.groupby('id', as_index=False).max()
Out[601]:
id timestamp
0 1 2015-12-03 00:00:00
1 2 2015-12-06 00:00:00
另外,tail
在 cmets 中提到
In [602]: df.groupby('id').tail(1)
Out[602]:
id timestamp
1 1 2015-12-03 00:00:00
4 2 2015-12-06 00:00:00
【讨论】:
max() 取每一列的最大值,对吗?以上是关于根据每个唯一 ID 的最新时间戳过滤数据帧 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
从表中选择最新的带时间戳的值,该表对于一个列 id 有多个条目,对于每个唯一的列 id 和来自另一个表的数据
R Dataframe过滤:使用基于时间因素的唯一或重复功能