使用Python/Pandas以csv格式按小时分组,包括开始时间和结束时间日期时间列

2024-09-27 07:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我的脚趾被熊猫弄湿了,卡住了。我想在CSV中按小时聚合事件(获取计数),并在事件中有开始时间和结束时间

例如:

event, start, end
soccer, 2020-01-20 00:34:00, 2020-01-20 02:34:00,
football, 2020-01-20 00:34:00, 2020-01-20 01:34:00
etc

预期产出:

00:00:00 - 2 (both began in 0th hour and went to 1st hour)
01:00:00 - 2 (both were live in 1st hour)
02:00:00 - 1 (only soccer occurred in 02 hour)

你会怎么做?我一直在尝试重新索引、重新采样、时差、时间索引——但都没有成功


Tags: csvinevent时间etc事件startend
1条回答
网友
1楼 · 发布于 2024-09-27 07:29:40

你想要的实际上是事件发生时间的频率分布。首先,您需要创建一个范围,然后对其进行分解,从而生成要从中获取分布的样本:

hours = events.apply(lambda row: range(row['end'].hour - row['start'].hour + 1), axis=1).explode()

0    0
0    1
0    2
1    0
1    1
dtype: object

不要忘记在结束和开始之间的差异中添加一个来解释fencepost error。 然后只获取样本的值计数。要以小时为单位而不是通过递减计数获取频率,请传递sort=False

hours.value_counts(sort=False)

0    2
1    2
2    1
dtype: int64

相关问题 更多 >

    热门问题