gpt4 book ai didi

python - 列值将增加并重置另外两列的更改

转载 作者:行者123 更新时间:2023-12-03 18:28:31 26 4
gpt4 key购买 nike

我有数据框,我想继续增加值直到 val更改和何时 id更改重置 count值(value)

data = [['p1',1],
['p1',1],
['p1',2],
['p2',3],
['p2',5],
['p3',1],
['p3',2],
['p3',1]]

df = pd.DataFrame(data = data,columns = ['id','val'])
期望输出
       id val  count
0 p1 1 1
1 p1 1 1
2 p1 2 2
3 p2 3 1
4 p2 5 2
5 p3 1 1
6 p3 2 2
7 p3 1 3
我已经到了这里
df['count'] = (df.val.diff() != 0).cumsum()
这仅在 val 时改变 id 时列更改但不重置列更改

最佳答案

你可以试试groupby+transformlambda

df['count'] = df.groupby("id")['val'].transform(lambda x: x.ne(x.shift()).cumsum())
print(df)

id val count
0 p1 1 1
1 p1 1 1
2 p1 2 2
3 p2 3 1
4 p2 5 2
5 p3 1 1
6 p3 2 2
7 p3 1 3

关于python - 列值将增加并重置另外两列的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63220183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com