gpt4 book ai didi

python - 连续计算列中某个值的出现次数

转载 作者:行者123 更新时间:2023-11-30 21:58:08 24 4
gpt4 key购买 nike

我有一个像这样的数据框:

index   value
---- -----
1 A
2 A
3 A
4 A
5 B
6 B
7 A
8 B
9 C
10 C

我想添加一列来计算我的值的连续出现次数,如下所示:

index   value   continues-count
---- ----- ----------
1 A 1
2 A 2
3 A 3
4 A 4
5 B 1
6 B 2
7 A 1
8 B 1
9 C 1
10 C 2

我可以使用循环来完成此操作,但由于我的数据集很大,所以需要很长时间!

最佳答案

使用 shiftcumsum 太无聊了,让我们尝试一下 itertools

import itertools 
df['New']=list(itertools.chain(*[list(range(len(list(y))))for _,y in itertools.groupby(df.value)]))
df
Out[596]:
index value New
0 1 A 0
1 2 A 1
2 3 A 2
3 4 A 3
4 5 B 0
5 6 B 1
6 7 A 0
7 8 B 0
8 9 C 0
9 10 C 1
<小时/>

Pandas 方式

df['New']=df.groupby((df.value!=df.value.shift()).ne(0).cumsum()).cumcount()+1

关于python - 连续计算列中某个值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55033122/

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