gpt4 book ai didi

python - 两个值匹配 pandas 时的累积计数

转载 作者:行者123 更新时间:2023-11-30 22:12:35 25 4
gpt4 key购买 nike

我正在尝试创建一个新的 Column显示 cumulative count基于单独的值 columns

因此,对于下面的代码,我尝试根据 Cause 创建两个新列和Answer Columns 。因此对于 Column Answer 中的值,如果In位于Column Cause我想在新列中提供累积计数。

import pandas as pd

d = ({
'Cause' : ['In','','','In','','In','In'],
'Answer' : ['Yes','No','Maybe','No','Yes','No','Yes'],
})

df = pd.DataFrame(d)

输出:

  Answer Cause
0 Yes In
1 No
2 Maybe
3 No In
4 Yes
5 No In
6 Yes In

预期输出:

  Answer Cause Count_No Count_Yes
0 Yes In 1
1 No
2 Maybe
3 No In 1
4 Yes
5 No In 2
6 Yes In 2

我已尝试以下操作,但出现错误。

df['cumsum'] = df.groupby(['Answer'])['Cause'].cumsum()

最佳答案

这是一种方法 -

for val in ['Yes', 'No']:
cond = df.Answer.eq(val) & df.Cause.eq('In')
df.loc[cond, 'Count_' + val] = cond[cond].cumsum()

df
# Cause Answer Count_Yes Count_No
#0 In Yes 1.0 NaN
#1 No NaN NaN
#2 Maybe NaN NaN
#3 In No NaN 1.0
#4 Yes NaN NaN
#5 In No NaN 2.0
#6 In Yes 2.0 NaN

关于python - 两个值匹配 pandas 时的累积计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51053678/

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