【问题标题】:Pandas - count of unique columns with sumPandas - 具有总和的唯一列计数
【发布时间】:2020-03-11 23:23:43
【问题描述】:

我有以下数据框:

   x_1  x_2      x_3    x_4        x_5  ID  cost 
0  159  xyz  883nne2  28h93     lightz  10     2       
1  159  xyz  883nne2  28h93     lightz  10     5       
2  354  abc  94mmm4k             heavy  15     2       
3  354  abc  94mmm4k             heavy  15     1       
4  354  abc  94mmm4k   455h             15     7       
5  354  abc  94mmm4k             super   3     2       
6  354  abc  94mmm4k    53g             10     4   
7  354  abc  94mmm4k    53g             10     4   

我想查找列 x_1、x_2、x_3、x_4、x_5、ID 的每个唯一组合的计数,并获得这些计数的总和,然后应用在成本列中找到的值来获得每个唯一组合的总和找到了。

希望最终结果如下所示:

   x_1  x_2      x_3    x_4        x_5  ID   count sum
0  159  xyz  883nne2  28h93     lightz  10       2   7      
1  354  abc  94mmm4k             heavy  15       2   3      
2  354  abc  94mmm4k   455h             15       1   7
3  354  abc  94mmm4k             super   3       1   2
4  354  abc  94mmm4k    53g             10       2   8

【问题讨论】:

  • 到底是什么问题?你有没有尝试过,做过任何研究? Stack Overflow 不是免费的代码编写服务。请参阅:How to Askhelp centermeta.stackoverflow.com/questions/261592/…
  • 我已经尝试并研究了该主题,但我没有提供这些细节,我对我的礼仪表示歉意。我没有发现我的方法有什么问题,但我发现这是你的问题。我将努力为我所尝试的内容添加更多背景

标签: python pandas dataframe


【解决方案1】:

让我们做groupbyagg

s=df.groupby(['x_1','x_2','x_3','x_4','x_5','ID'],as_index=False)['cost'].agg(['count','sum'])

【讨论】:

  • 感谢您的反馈!当我运行此查询时,它看起来并没有考虑到可能为空的行组合。我们还可以添加什么其他内容,以便计算空单元格并增加唯一组合计数?
  • @Aldo 为空,如果为 NaN,则为 NaN df.fillna('',inplace=True)
  • 对,它们不是空的。我很抱歉,它们设置为无。
  • @Aldo do df.fillna('',inplace=True) 在上述之前
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多