我有一个按以下方式构建的数据帧:
时间戳 | 参与者id上游 | 下游||
---|---|---|---|
2020年1月1日 | 人员1 | <1>0 | |
2020年1月1日 | 人员1 | <1>||
1.2.2020 | 人员1 | 1 | 0 |
1.2020 | 人员1 | <1>1 | |
2020年1月1日 | 人员2 | 10 | |
2020年1月1日 | |||
1.2.2020 | 人2 | 10 |
尝试:
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