gpt4 book ai didi

python - 将事件数据帧重新采样为 10 分钟间隔并对事件进行计数

转载 作者:行者123 更新时间:2023-11-30 22:11:58 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,它显示了有关某些正在发生的事件的一些信息。基本上是这样的

Timestamp   Event Code  Prev Event Code State
2018-01-01T06:45:04.691 0 138 1
2018-01-01T06:44:33.678 138 0 21
2017-12-31T06:32:06.691 0 138 21
2017-12-31T06:31:39.687 138 0 21
2017-12-30T06:19:20.688 0 138 1

我想重新采样此数据帧,使时间戳间隔 10 分钟,并且在该 10 分钟间隔内发生的事件计数。我想要这样的东西作为输出

Timestamp   0_count 138_count
fifth 10 min 2 2
fourth 10 min 3 0
third 10 min 5 0
second 10 min 1 1
first 10 min 0 2

我刚刚给出了一个占位符时间戳,而不是 Timestamp 列中的实际输出。实际上应该有 10 分钟分隔的时间戳。

我不知道如何解决这个问题。我认为必须有一些有效的方法可用,而不是一些复杂的循环和 Pandas 中的代码。

为了重新生成示例数据帧,可以使用此代码。

event_df = pd.DataFrame()

event_df['Timestamp'] = ['2018-01-01T06:45:04.691', '2018-01-01T06:44:33.678',
'2017-12-31T06:32:06.691', '2017-12-31T06:31:39.687',
'2017-12-30T06:19:20.688']
event_df['Event Code'] = [ 0, 138, 0, 138, 0]
event_df['Prev Event Code'] = [138, 0, 138, 0, 138]
event_df['State'] = [ 1, 21, 21, 21, 1]

最佳答案

将时间戳设置为数据帧索引:

event_df.index = pd.to_datetime(event_df.Timestamp)

现在,您可以重新采样:

count_138 = (event_df['Event Code']==138).astype(int)\
.resample('10 min').sum()
count_0 = (event_df['Event Code']==0).astype(int)\
.resample('10 min').sum()

如果需要的话,合并结果:

pd.DataFrame({'count_0': count_0, 'count_138': count_138})

关于python - 将事件数据帧重新采样为 10 分钟间隔并对事件进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com