create函数,用于计算每个唯一id的dataframe中的web会话数

sxpgvts3  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(341)

我有一个 Dataframe ,其结构如下:
时间戳参与者ID上游下游1.1.2020人1101.1.2020人1111.2.2020人1101.2.2020人1111.1.2020人2101.1.2020人2111.2.2020人210
我希望创建一个函数,它可以创建每个人会话的累积计数。当上游=1,下游=0时,新会话开始。
理想的输出是:
时间戳参与者idsession1.1.2020person 111.1.2020person 111.2.2020person 121.2.2020person 121.1.2020person 211.1.2020person 211.1.2020person 22
到目前为止,我所尝试的是;

if (s['upstream']==1 and s['downstream']==1):
        return 1

但我不确定如何让它给出每个人的累积计数。因此,当有新的个人标识符时,计数将重新启动为0。
非常感谢任何帮助,非常感谢。

nkcskrwz

nkcskrwz1#

尝试:

df["session"] = df["upstream"].eq(1) & df["downstream"].eq(0)
df["session"] = df.groupby("participant id", as_index=False)["session"].cumsum()
print(df)

印刷品:

timestamp participant id  upstream  downstream  session
0  1.1.2020       person 1         1           0        1
1  1.1.2020       person 1         1           1        1
2  1.2.2020       person 1         1           0        2
3  1.2.2020       person 1         1           1        2
4  1.1.2020       person 2         1           0        1
5  1.1.2020       person 2         1           1        1
6  1.2.2020       person 2         1           0        2

相关问题