我想做一件简单的事情。我想将所有事件计数放入 2 分钟的时间戳中。
效果很好。
df = df.groupBy(window(df["time_value"], "2 minutes")).count()
df.show()
+--------------------+-----+
| window|count|
+--------------------+-----+
|[2018-04-10 15:00...| 770|
|[2018-04-10 00:42...| 100|
|[2018-04-10 04:14...| 54|
|[2018-04-06 15:54...| 36|
|[2018-04-10 04:46...| 304|
|[2018-04-10 20:36...| 347|
|[2018-04-10 03:26...| 41|
|[2018-04-10 21:10...| 85|
|[2018-04-10 11:44...| 426|
|[2018-04-10 12:32...| 754|
|[2018-04-10 00:28...| 61|
|[2018-04-10 05:36...| 478|
|[2018-04-06 07:04...| 18|
|[2018-04-10 22:14...| 195|
|[2018-04-10 23:40...| 175|
|[2018-04-10 00:20...| 229|
|[2018-04-10 03:10...| 209|
|[2018-04-10 01:28...| 67|
|[2018-04-09 18:52...| 9|
|[2018-04-10 19:06...| 3548|
+--------------------+-----+
only showing top 20 rows …Run Code Online (Sandbox Code Playgroud) 我有以下形式的Pandas数据框:
Date ID Temp
2019/03/27 1 23
2019/04/27 2 32
2019/04/27 1 42
2019/04/28 1 41
2019/01/27 2 33
2019/08/27 2 23
Run Code Online (Sandbox Code Playgroud)
我需要做什么?
为每个ID选择距其最近的度量值至少30天的行。
即,最后的日期Id = 2是2019/08/27,所以ID =2我需要选择年纪大了至少30天的行。因此,2019/08/27ID为2 的行本身将被删除。
同样,ID = 1的最新日期是2019/04/28。这意味着ID =1仅当日期小于2019/03/28(早于30天)时,我才能选择行。因此,2019/04/27带有的ID=1行将被删除。
如何在熊猫中做到这一点。任何帮助是极大的赞赏。
谢谢。
最终数据帧将是:
Date ID Temp
2019/03/27 1 23
2019/04/27 2 32
2019/01/27 2 33
Run Code Online (Sandbox Code Playgroud)