pandas 根据另一列中的非唯一值对嵌套框的列中的值求和[重复]

js4nwp54  于 2023-10-14  发布在  其他
关注(0)|答案(1)|浏览(96)

此问题已在此处有答案

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很陌生,所以请放松:)

lf5gs5x2

lf5gs5x21#

您正在寻找.groupby方法。相关文档:

用法示例:

import pandas as pd

df = pd.DataFrame({"X": list("AAABBC"), "Y": range(6)})

df_by_x = df.groupby("X").sum()

print(df_by_x)

测试结果:

Y
X
A  3
B  7
C  5

我相信你可以想象,在Pandas中分组还有很多其他的事情可以做。有几种不同的方法可以解决你在这里提出的问题,尽管“一种明显的方法”是上面的.sum()方法。但是,通过其他一些方法来完成相同的任务可能是一个有用的学习练习。
与此操作相关的另一个搜索术语是“split-apply-合并”,但这在某种程度上是一个短暂的术语趋势(主要限于R用户),而“group by”是一个从SQL继承的长期术语。

相关问题