我有以下数据集:
value timestamp
0 Fire 2017-10-03 14:33:52
1 Water 2017-10-04 14:33:48
2 Fire 2017-10-04 14:33:45
3 Fire 2017-10-05 14:33:30
4 Water 2017-10-03 14:33:40
5 Water 2017-10-05 14:32:13
6 Water 2017-10-04 14:32:01
7 Fire 2017-10-03 14:31:55
Run Code Online (Sandbox Code Playgroud)
我想timestamp每天对这个集合进行分组,然后每天只选择最早的行。对于上面的例子,结果应该如下:
value timestamp
1 Water 2017-10-05 14:32:13
2 Water 2017-10-04 14:32:01
3 Fire 2017-10-03 14:31:55
Run Code Online (Sandbox Code Playgroud)
例如,当天2017-10-03有 3 个条目,但我只想要当天最早的条目。
如果您有唯一索引,则可以使用idxminontimestamp找出最小时间戳的索引并使用以下命令提取它们loc:
df.timestamp = pd.to_datetime(df.timestamp)
df.loc[df.groupby(df.timestamp.dt.date, as_index=False).timestamp.idxmin()]
# value timestamp
#7 Fire 2017-10-03 14:31:55
#6 Water 2017-10-04 14:32:01
#5 Water 2017-10-05 14:32:13
Run Code Online (Sandbox Code Playgroud)