gpt4 book ai didi

python - 如何使用 P 中行值的总和创建一个新列

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:30 24 4
gpt4 key购买 nike

我有一个有趣的项目,但我被数据清理的一个关键部分困住了:我不知道如何根据特定行/列的值创建总计列

我的数据框有这个信息:

CustomerID ActivityType
01134A Email
01134B Email
01134A Call
01134B Email

我想要的输出是

 CustomerID ActivityType TotalEmail TotalCall
01134A Email 1 1
01134B Email 2 0
01134A Call 1 1
01134B Email 2 0

我试过了

df['EmailTotal']='df.groupby('ActivityType'=='Email').transform('sum')

最佳答案

使用DataFrame.joincrosstab并更改列名称添加 DataFrame.add_prefix :

df = df.join(pd.crosstab(df.CustomerID, df.ActivityType).add_prefix('Total'), on='CustomerID')
print (df)
CustomerID ActivityType TotalCall TotalEmail
0 01134A Email 1 1
1 01134B Email 0 2
2 01134A Call 1 1
3 01134B Email 0 2

编辑:

您的解决方案应该通过比较、转换为整数和按系列 df.CustomerIDtransformsum 进行分组来更改:

df['ETotal']=df.ActivityType.eq('Email').astype(int).groupby(df.CustomerID).transform('sum')
df['CTotal']= f.ActivityType.eq('Call').astype(int).groupby(df.CustomerID).transform('sum')

关于python - 如何使用 P 中行值的总和创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934635/

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