gpt4 book ai didi

python - 如何为数据框中的列应用多个条件?

转载 作者:行者123 更新时间:2023-12-04 07:51:52 24 4
gpt4 key购买 nike

我有一个如下所示的数据框,两列之间没有关系


物品
第 1 列



1


1


1


1


1


2


2


2


2


我想使用这两个生成一个新列。结果列应该对项目列进行累积总和(仅在项目更改时才增加编号),并且如果 col1 中的系列发生更改,则编号必须再次从 1 开始。


物品
第 1 列
结果



1
1


1
1


1
2


1
3


1
3


2
1


2
2


2
2


2
2


我能够用下面的代码做累积总和,

df["result"] = (df["item"] != df["item"].shift(1)).cumsum()
但是当 col1 发生变化时将计数器重置为 1 的条件是我需要的。

最佳答案

查看 groupbyfactorizetransform

df['new'] = df.groupby('col1').item.transform(lambda x : x.factorize()[0]+1)
df
item col1 new
0 cat 1 1
1 cat 1 1
2 dog 1 2
3 fish 1 3
4 fish 1 3
5 fish 2 1
6 snake 2 2
7 snake 2 2
8 snake 2 2

关于python - 如何为数据框中的列应用多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66927165/

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