我想使用groupby函数计算30分钟时间间隔的行数,从第一个单元格向下列计算30分钟间隔。这就是我所拥有的:
pygame.time.get_ticks
所以对于第一行,我从8:54开始向下计算30分钟,这是9:24,这将给我总共4行。 然后对于第二行,我从8:57向下计算30分钟,这是9:27,这将给我一共4行 然后对于第三行,我从9:01向下计算30分钟,这是9:31,这将给我总共3行,依此类推。
有人知道怎么做吗?
非常感谢!
答案 0 :(得分:0)
不确定您是否要计算当前的'约会,因为在你的解释中,我认为你并不一致。在我的代码中,您可以通过将>
调整为>=
来轻松更改它。
from datetime import timedelta
from dateutil import parser
import pandas as pd
dates = [
"2018-2-1 08:54:00",
"2018-2-1 08:57:00",
"2018-2-1 09:01:00",
"2018-2-1 09:19:00",
"2018-2-1 09:26:00",
"2018-2-1 09:41:00",
"2018-2-1 10:03:00",
"2018-2-1 11:35:00",
"2018-2-1 11:36:00",
"2018-2-1 09:54:00",
"2018-2-1 10:21:00",
"2018-2-1 09:00:00",
"2018-2-1 10:20:00",
"2018-2-1 10:14:00",
"2018-2-1 10:51:00",
"2018-2-1 11:05:00",
"2018-2-1 11:24:00",
"2018-2-2 02:20:00",
"2018-2-2 02:25:00",
"2018-2-2 02:39:00"]
dates = pd.DataFrame([parser.parse(date) for date in dates])
counts = [
int(dates[(dates > date)
& (dates <= (date + timedelta(minutes=30)))].count())
for date in dates[0]
]
[4, 4, 2, 2, 2, 2, 3, 1, 0, 4, 1, 3, 1, 2, 1, 2, 2, 2, 1, 0]