Groupby 和 sum 几列 pandas
Posted
技术标签:
【中文标题】Groupby 和 sum 几列 pandas【英文标题】:Groupby and sum several columns pandas 【发布时间】:2019-09-29 01:11:00 【问题描述】:我正在尝试按几列进行分组。一栏很容易,只需df.groupby('c1').['c3].sum()
原始数据框
c1 c2 c3
1 1 2
1 2 12
2 1 87
2 2 12
2 3 87
2 3 13
想要的结果
c2 c3(c1_1) c3(c1_2)
1 2 87
2 12 12
3 (0?) 100
其中 c3(c1_1) 表示列 c3 的总和,其中 c1 的值为 1
我不知道如何在此应用 groupby。太好了,如果有人不仅会展示如何解决它,而且会展示没有这些愚蠢问题的阅读内容
【问题讨论】:
这不是一个愚蠢的问题,但不清楚。为什么列名发生了变化,预期的输出是什么?这是c3(c1_1)
中的 NaN 值吗?
下划线代表什么?我有点看到这种模式了
@roganjosh 谢谢你的评论。我现在添加了一些描述。
@kiyac 请提及您想要的结果。
【参考方案1】:
通过向groupby
提供列表,您可以一次按多列分组。如果您不介意输出格式略有不同,您可以通过
In [32]: df.groupby(['c2', 'c1']).c3.sum().unstack(fill_value=0)
Out[32]:
c1 1 2
c2
1 2 87
2 12 12
3 0 100
通过一些工作,这也可以按摩成您提供的形式。
【讨论】:
以上是关于Groupby 和 sum 几列 pandas的主要内容,如果未能解决你的问题,请参考以下文章