计算分钟时间间隔之间的行数 - Python

时间:2018-02-06 04:51:55

标签: python pandas time group-by kwargs

我想使用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行,依此类推。

有人知道怎么做吗?

非常感谢!

1 个答案:

答案 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]