值更改和时间超过条件时数据帧中的增量计数

2024-05-13 05:08:44 发布

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

每次人员更改时,将计数重置为0。每次从初始增量开始的时间超过2时的增量计数。你知道吗

Person Time DesiredResult
B      0    0
B      2    0
B      2    0
B      4    1
A      0    0
S      0    0
S      1    0
S      2    0
S      4    1
S      8    2

generage数据帧的代码:

df = pd.DataFrame({'Person': ['Bob','Bob','Bob','Bob','Alvin','Steve','Steve','Steve','Steve','Steve']
                     ,'Time': [0,2,2,4,0,0,1,2,4,8]
                     ,'DesiredResult': [0,0,0,1,0,0,0,0,1,2]})

图片附在下面的链接

https://i.stack.imgur.com/45egh.png


Tags: 数据代码dftime人员时间增量person
1条回答
网友
1楼 · 发布于 2024-05-13 05:08:44

我假设您没有DesiredResult列。你知道吗

要创建它,请定义以下函数:

def fn(grp):
    t0 = grp.iloc[0].Time
    return (grp.Time > t0 + 2).cumsum()

然后运行:

df['DesiredResult'] = df.groupby('Person').apply(fn).reset_index(level=0, drop=True)

相关问题 更多 >