Python 在数据帧中查找事件的每个id的连续天数

Python 在数据帧中查找事件的每个id的连续天数,python,pandas,Python,Pandas,这是我的数据框: employeeid eventid event_date 1 1 2020-11-01 1 1 2020-11-02 1 0 2020-11-02 1 1 2020-11-03 1 1 2020-11-04 1 1 2020-11-05 1 1 2020-11-06 2

这是我的数据框:

employeeid eventid event_date
1          1       2020-11-01
1          1       2020-11-02
1          0       2020-11-02
1          1       2020-11-03
1          1       2020-11-04
1          1       2020-11-05
1          1       2020-11-06
2          1       2020-11-01
2          1       2020-11-02
2          0       2020-11-02
3          1       2020-11-01
3          1       2020-11-02
3          1       2020-11-03
我想找出事件1中每个驱动程序的连续天数

输出必须是:

employeeid eventid start_date consecutive_days
1          1       2020-11-01 2
1          1       2020-11-03 4
2          1       2020-11-01 2
3          1       2020-11-01 3
我用cumsum()做了一些尝试,但没有成功


如何执行此操作?

首先为
1和每个组的连续天数创建组,在中筛选
DataFrame
,然后使用命名聚合进行聚合:

m1 = df['eventid'].ne(1)

m2 = df.groupby('employeeid')['event_date'].diff().dt.days.fillna(1).ne(1)
m = (m1 & m2)

df['g'] = m.cumsum()
df = df[~m]

df = (df.groupby(['employeeid', 'g']).agg(start_date = ('event_date', 'first'),
                                          consecutive_days = ('event_date', 'size'))
        .reset_index(level=1, drop=True)
        .reset_index())