与groupby TimeGrouper的空的时间块在熊猫

时间:2016-10-12 19:02:44

标签: python pandas

我有一个具有这种结构的数据框:

time,name,status
2016-10-09 00:15:50,10.0.0.24,REJECTED
2016-10-09 00:15:50,10.0.0.24,REJECTED
2016-10-09 00:15:54,10.0.0.24,accepted

使用此代码分组

dfx = df.set_index(['time'])
dfx = dfx[dfx.status == 'accepted']
grouper = dfx.groupby([pd.TimeGrouper("20min"), 'name'])
dfTime = grouper['name'].count().unstack('name').fillna(0)

提供一个数据帧,详细说明每个IP地址的事件计数,如下所示:

time,10.0.0.103,10.0.0.24
2016-10-11 20:20:00,8,6
2016-10-11 20:40:00,151,198
2016-10-11 21:00:00,150,209
2016-10-11 21:20:00,136,214
2016-10-11 21:40:00,155,196
2016-10-11 22:00:00,140,218
2016-10-11 22:20:00,170,219
2016-10-11 22:40:00,154,193
2016-10-11 23:00:00,141,195
2016-10-11 23:20:00,149,206
2016-10-11 23:40:00,132,190
2016-10-12 00:00:00,140,197
2016-10-12 00:20:00,182,238
2016-10-12 00:40:00,171,215
2016-10-12 01:00:00,40,45
2016-10-12 12:40:00,100,196
2016-10-12 13:00:00,171,212
2016-10-12 13:20:00,180,200
2016-10-12 13:40:00,184,220

您会注意到没有数据的地方(例如00:40到01:00之间)根本没有完成分组。我需要在最终数据帧中表示每个20分钟的块,其中0个计数用于各自的IP,即:

2016-10-12 00:40:00,171,215
2016-10-12 00:50:00,0,0
2016-10-12 01:00:00,40,45

最好的方法是什么?

0 个答案:

没有答案