python: pandas: 过滤一列并获取另一列的平均值

标签 python pandas mean

我有一个像这样的 python pandas 数据框:

a  b
1  5
3  6
1  7
2  8
2  34
3  35
1  54
3  123
4  2353
... ....

当 a 具有不同的值时,我想得到 b 中值的平均值。 例如,当a = 1, b = 5, 7, 54,则均值(a=1) = (5 + 7 + 54)/3; 当a = 2, b = 8, 34, 所以均值(a=2) = (8 + 34)/2;

我的尝试是

aaa = []
for v in df['a']:
    aaa.append(np.mean(df['b'])
print (aaa)

但这是不对的。希望您能够帮助我。谢谢!

最佳答案

您可以使用 groupby聚合:

df.groupby('a').b.mean()

#a
#1      22.000000
#2      21.000000
#3      54.666667
#4    2353.000000
#Name: b, dtype: float64

关于python: pandas: 过滤一列并获取另一列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405180/

相关文章:

r - 格式化在 ggplot 的箱线图中显示为文本的数字。解释箱线图之外均值的定位

python - 对象对于所需数组来说太深 - scipy.integrate.odeint

python - 对 MongoDB 实例中的每个文档执行操作

python - 在 Pandas 数据框中迭代两个连续行的 Pythonic 方法是什么?

javascript - Angular2中无法从动态url获取参数

python - 一列中的值对另一列中的唯一值的平均值

python - 使用 MinGW 链接到 Python

python - 如何在 requirements.txt 中声明一个直接的 github 源

python - 从包含多行的 pandas Dataframe 更新 BigQuery 表的最佳方法是什么

python - 如何设置Pandas数据框where条件的多个值