gpt4 book ai didi

python - 基于条件的索引范围

转载 作者:行者123 更新时间:2023-12-03 21:08:22 24 4
gpt4 key购买 nike

我有如下所示的 Pandas 数据框:

account   have  
A 0
A 1
A 2
A 1
A 1
A 2
A 0
A 1
A 1
B 0
B 0
B 0
B 0
B 0
B 1
B 1
B 1
B 1
我想要这样的结果:
  account   have  
A 12
A 12
A 0
A 1
A 2
A 0
A 1
A 2
A 3
B 12
B 12
B 12
B 12
B 12
B 12
B 12
B 12
B 12
我想在由 account 找到并更改的特定值之后进行排序否则返回 12 .例如,具体值为 2 , 如果任何值大于或等于 2会考虑。帐号中 A ,它发现 2在索引 2 处,索引将更改为 0以及之后小于 2 的任何值将从 1 开始排序.
帐号中 B ,没有大于或等于 2 的值,结果返回 12 .
事实上,我有一百万的帐户,如果有任何建议或起点,请帮助我。

最佳答案

使用 cumsum找到您的群组,以及 cumcount填写他们。

m = df["have"].ge(2).groupby(df["account"]).cumsum()
df.groupby([df["account"], m]).cumcount().where(m.ne(0), 12)

0 12
1 12
2 0
3 1
4 2
5 0
6 1
7 2
8 3
9 12
10 12
11 12
12 12
13 12
14 12
15 12
16 12
17 12
dtype: int64

关于python - 基于条件的索引范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65394434/

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