【问题标题】:sum up values of a column depending on 2 other values ​from different columns根据来自不同列的 2 个其他值对列的值求和
【发布时间】: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() 使用原始数据更新您的帖子。
  • 您的示例数据框中的团队在哪里?你需要合并吗?
  • 我有一个版本的数据框,其中我有一个额外的团队专栏,抱歉忘记发布那个。

标签: python pandas data-visualization data-science data-analysis


【解决方案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) &amp; df.win.ne(5)].ne() 表示not equal to,因此它应该选择win 列内不等于0 和5 的所有值
猜你喜欢
  • 1970-01-01
  • 2014-05-07
  • 2020-09-17
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2020-06-17
  • 2020-05-24
  • 2019-03-08
相关资源
最近更新 更多