【问题标题】:Aggregating data using python使用python聚合数据
【发布时间】:2017-04-27 09:09:45
【问题描述】:

我有一些数据,我想根据某个字段求和和计数。我的数据是这样的

Value  ID    Object
100    ABD   Type1
200    ABD   Type1
400    ABD   Type2
200    BCE   Type1
100    BCE   Type1
800    JHO   Type3
600    TVM   Type4

我正在尝试计算与 ID 相关的 unique 对象的数量,并将与该 ID 相关的总值相加

ValueSum  ID    CountObject
700       ABD   2  
300       BCE   1
800       JHO   1 
600       TVM   1

我一直在研究的是使用.groupby.() 函数以及.count().sum(),但我似乎无法以正确的格式获取内容。

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 你在用pandas吗?
  • 你的输入是什么,文本文件,数据框,原始字符串?

标签: python pandas count sum aggregate


【解决方案1】:

您可以使用groupbyagg 传递函数的字典以在您的df 上的多个列上执行:

In [289]:
gp = df.groupby('ID', as_index=False).agg({'Value':sum, 'Object':'nunique'})
gp = gp.rename(columns={'Value':'ValueSum', 'Object':'ObjectCount'})
gp

Out[289]:
    ID  ValueSum  ObjectCount
0  ABD       700            2
1  BCE       300            1
2  JHO       800            1
3  TVM       600            1

这里我们传递一个带有相应列名和要执行的函数的 dict,对于计数,我们使用 nunique 返回唯一值的数量

【讨论】:

  • 谢谢,这真的很有帮助。唯一的问题是它不计算唯一记录的数量,而是计算总数。
猜你喜欢
  • 2019-05-20
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 2014-08-28
  • 2014-02-07
  • 1970-01-01
相关资源
最近更新 更多