gpt4 book ai didi

python - 第一次达到数字时递增计数器

转载 作者:行者123 更新时间:2023-11-28 21:38:05 24 4
gpt4 key购买 nike

这可能是一个非常愚蠢的问题。但是,我还是会继续问下去。如何仅在第一次达到特定值时增加计数器?

例如,如果我将下面的步骤作为 df 的一列,并且想要添加一个名为“counter”的计数器列,该列在“step”列的值为 6 时递增

enter image description here

最佳答案

您可以在 pandas 中使用 .shift() -

Notice how you only want to increment if value of df['step'] is 6 and value of df.shift(1)['step'] is not 6.

df['counter'] = ((df['step']==6) & (df.shift(1)['step']!=6 )).cumsum()
print(df)

输出

      step  counter
0 2 0
1 2 0
2 2 0
3 3 0
4 4 0
5 4 0
6 5 0
7 6 1
8 6 1
9 6 1
10 6 1
11 7 1
12 5 1
13 6 2
14 6 2
15 6 2
16 7 2
17 5 2
18 6 3
19 7 3
20 5 3

解释

一个。 df['step']==6 给出 boolean 值 - True 如果 step6

0     False
1 False
2 False
3 False
4 False
5 False
6 False
7 True
8 True
9 True
10 True
11 False
12 False
13 True
14 True
15 True
16 False
17 False
18 True
19 False
20 False
Name: step, dtype: bool

df.shift(1)['step']!=6 将数据平移 1 行,然后检查值是否等于 6。

当这两个条件都满足时,您想要递增 - .cumsum() 会处理这个问题。希望对您有所帮助!

P.S - 虽然这是一个很好的问题,但请避免粘贴图片。您可以直接将数据和格式粘贴为代码。帮助回答复制粘贴的人

关于python - 第一次达到数字时递增计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683649/

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