gpt4 book ai didi

python - Pandas 聚合中的计算

转载 作者:太空宇宙 更新时间:2023-11-04 05:50:29 27 4
gpt4 key购买 nike

我正在尝试在 pandas 聚合中执行计算。我希望计算包含在聚合中。我正在尝试的代码如下。我也在为 df 使用 pandas 包。

data = data.groupby(['type', 'name']).agg({'values': [np.min, np.max, 100 * sum([('values' > 3200)] / [np.size])]})

我要计算的公式如下:

100 * sum((values > 3200) / (np.size))

这里 np 是聚合的大小(聚合的数字限于大于 3200 的数字)。如何在聚合中执行这样的计算会有很大帮助。

示例输入数据(实际数据集要大得多)。重复值是由于聚合。

type, name, values
apple, blue, 2500
orange, green, 2800
peach, black, 3300
lemon, white, 3500

期望的示例输出(数字不正确,因为我还无法执行计算):

type, name, values, np.min, np.max, calcuation
apple, blue, 2500, 1200, 40000, 2300
orange, green, 2800, 1200, 5000, 2500

最佳答案

向 df.agg 传递一个字典用于指定输出列的名称,在这里您实际上是在编写一个聚合函数,它试图对一个命名列使用三个公式,并且该列已经在您的数据框中,因此它会失败。

你应该做的应该更像:

data = data.groupby(['type', 'name']).agg({'min':np.min, 'max':np.max, 'calculation': calculation})

您将计算函数重写为 lambda 函数或自定义函数的位置,具体取决于您想如何做事。

关于python - Pandas 聚合中的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30513632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com