根据来自不同列的 2 个其他值对列的值求和
Posted
技术标签:
【中文标题】根据来自不同列的 2 个其他值对列的值求和【英文标题】:sum up values of a column depending on 2 other values from different columns 【发布时间】:2019-11-16 22:16:17 【问题描述】:我正在使用 jupyter notebook 用 python 可视化一些数据。 我得到了一个包含以下列的数据框:matchid、player、visionscore、win
given table
现在我想总结一下visionscore。对于每个 matchid,给出 10 个条目,从玩家 1 到 10(玩家 1-5 = 团队 1,6-10 = 团队 2),每个玩家都有自己的 visionscore。 现在我想要这样的东西:
expected result
显然我对数据分析很陌生。我已经有一张表格,其中总结了 visionscore/matchid,但不幸的是,团队之间没有分开。所以这是游戏的整体视觉分数。
table i allready got
【问题讨论】:
请使用df.to_clipboard()
使用原始数据更新您的帖子。
您的示例数据框中的团队在哪里?你需要合并吗?
我有一个版本的数据框,其中我有一个额外的团队专栏,抱歉忘记发布那个。
【参考方案1】:
我随机生成数据,但我认为这应该可行。
df['team'] = [1 if p<=5 else 2 for p in df.player]
df.groupby(['matchid', 'team'])['visionscore', 'win'].sum()
matchid team visionscore win
10 1 274 3
10 2 124 3
11 1 416 3
11 2 89 0
【讨论】:
df['team']=df['player'].gt(5).add(1)
怎么样 :)
win get 也总结出来了。现在我需要在“win”列中删除任何不是 0 或 5 的值,因为 0 表示输,5 表示赢。我怎么能在python中这么说?我的大脑总是在 java 中思考:/
试试df.loc[df.win.ne(0) & df.win.ne(5)]
。 .ne()
表示not equal to
,因此它应该选择win
列内不等于0 和5 的所有值以上是关于根据来自不同列的 2 个其他值对列的值求和的主要内容,如果未能解决你的问题,请参考以下文章
在 R 中,如何根据一列的值对所有其他列求和,而不指定列名?