首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过根据其他两个列中的值对现有列进行求和,向熊猫数据中添加一个新的总计列

通过根据其他两个列中的值对现有列进行求和,向熊猫数据中添加一个新的总计列
EN

Stack Overflow用户
提问于 2019-04-01 00:24:18
回答 1查看 128关注 0票数 0

我有一只熊猫的资料如下:

代码语言:javascript
复制
    df = pd.DataFrame({
'State':['am','am','am','am','am','am','fg','fg','fg','fg','fg','fg','fg'],
'PC':['A','A','A','B','B','B','C','C','C','A','A','A','A'],
'Party':['alpha','beta','delta','alpha','beta','gamma','alpha','beta','kappa','alpha','gamma','kappa','lambda'],
'Votes':[10,4,50,11,2,60,3,1,70,12,34,52,43]
})

我想要添加一个总计列,它将包含每个个人电脑的总票数。请注意,PC可以具有相同的名称(例如:上面的‘’在两个不同的状态'am‘和'fg',所以我们想分别总结它们,因为它们是不同的pc)。

总之,这是我想要的输出:

代码语言:javascript
复制
    df_out = pd.DataFrame({
'State':['am','am','am','am','am','am','fg','fg','fg','fg','fg','fg','fg'],
'PC':['A','A','A','B','B','B','C','C','C','A','A','A','A'],
'Party':['alpha','beta','delta','alpha','beta','gamma','alpha','beta','kappa','alpha','gamma','kappa','lambda'],
'Votes':[10,4,50,11,2,60,3,1,70,12,34,52,43],
'Total':[64,64,64,73,73,73,74,74,74,141,141,141,141]
})

我试着用累积量

代码语言:javascript
复制
    df['cumsum'] = df['Votes'].cumsum()

但是这会产生一个累积的和,我看不出有一种方法可以对列'State‘和列'pc’中的值进行条件化。我怎么做才能得到想要的输出呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-01 00:28:34

您希望使用groupbytransform来获得每个StatePC的总数。Transform保持原始dataframe的形状:

代码语言:javascript
复制
df['Total'] = df.groupby(['State', 'PC']).Votes.transform('sum')

print(df)
   State PC   Party  Votes  Total
0     am  A   alpha     10     64
1     am  A    beta      4     64
2     am  A   delta     50     64
3     am  B   alpha     11     73
4     am  B    beta      2     73
5     am  B   gamma     60     73
6     fg  C   alpha      3     74
7     fg  C    beta      1     74
8     fg  C   kappa     70     74
9     fg  A   alpha     12    141
10    fg  A   gamma     34    141
11    fg  A   kappa     52    141
12    fg  A  lambda     43    141
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55446681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档