此问题已在此处有答案:
How do I Pandas group-by to get sum?(11个回答)
3天前关闭。
我正在学习Pandas,遇到了一个超级简单的问题,但不知道如何解决它。我有一个2列的dataframe。一列是分类的,有三个级别,即值是非唯一的,并且一列是定量的。比如说,
df = pd.DataFrame({"X": list("AAABBC"), "Y": range(6)})
我想根据X
列中的每个唯一值对Y
列中的每个值求和。即我应该得到一个有2列的矩阵;一列是X
中的唯一值,即,["A","B","C"]
,另一列是对应于X中每个水平的Y中的求和值,即[3,7,5]
。
这显然是一个相当基本的事情要做,但我已经尝试谷歌搜索,我找不到答案,所以这是相当令人沮丧的。我认为答案应该很简单,可能是一行程序,但我不知道该命令。我对Pandas很陌生,所以请放松:)
1条答案
按热度按时间lf5gs5x21#
您正在寻找
.groupby
方法。相关文档:用法示例:
测试结果:
我相信你可以想象,在Pandas中分组还有很多其他的事情可以做。有几种不同的方法可以解决你在这里提出的问题,尽管“一种明显的方法”是上面的
.sum()
方法。但是,通过其他一些方法来完成相同的任务可能是一个有用的学习练习。与此操作相关的另一个搜索术语是“split-apply-合并”,但这在某种程度上是一个短暂的术语趋势(主要限于R用户),而“group by”是一个从SQL继承的长期术语。