gpt4 book ai didi

python-3.x - 通过更改 pandas 中的组内的列值来创建组

转载 作者:行者123 更新时间:2023-12-01 03:06:06 25 4
gpt4 key购买 nike

当 Success 或 Failure 列返回 True 值时,我想在每个 Chat_id 中创建组。如果成功或失败列的前一行中存在真值,则组的值会发生变化。我应该如何处理 Pandas 。所以基本上,Group 列是我想要创建的内容,但 chat_id、Success 和 Failure 列已经存在。

+---------+-------+---------+---------+
| Chat_id | Group | Success | Failure |
+---------+-------+---------+---------+
| A | 0 | FALSE | FALSE |
| A | 0 | FALSE | FALSE |
| A | 0 | TRUE | FALSE |
| A | 1 | FALSE | FALSE |
| A | 1 | FALSE | TRUE |
| A | 2 | FALSE | FALSE |
| A | 2 | FALSE | FALSE |
| B | 0 | FALSE | FALSE |
| B | 0 | FALSE | FALSE |
| B | 0 | FALSE | TRUE |
| B | 1 | FALSE | FALSE |
| B | 1 | FALSE | FALSE |
| B | 1 | FALSE | FALSE |
| C | 0 | FALSE | FALSE |
| C | 0 | TRUE | FALSE |
| C | 1 | FALSE | FALSE |
| C | 1 | TRUE | FALSE |
+---------+-------+---------+---------+

也尝试了以下方法,但似乎不起作用。

def grouping(dfg):
ind=0:
for row in dfg:
if row.Success==True or row.Failure==True:
ind+=1
return ind
df.groupby(chat_id).apply(lambda x: grouping(x))

最佳答案

总和

制作一个新列'Flag'

df = df.assign(Flag=(df.Success | df.Failure).cumsum())

df

Chat_id Group Success Failure Flag
0 A 0 False False 0
1 A 0 False False 0
2 A 0 True False 1
3 A 1 False False 1
4 A 1 False True 2
5 A 2 False False 2
6 A 2 False False 2
7 B 0 False False 2
8 B 0 False False 2
9 B 0 False True 3
10 B 1 False False 3
11 B 1 False False 3
12 B 1 False False 3
13 C 0 False False 3
14 C 0 True False 4
15 C 1 False False 4
16 C 1 True False 5

关于python-3.x - 通过更改 pandas 中的组内的列值来创建组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550410/

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