【问题标题】:Cannot called a function using .agg method in pandas?无法在 pandas 中使用 .agg 方法调用函数?
【发布时间】:2021-07-14 00:22:42
【问题描述】:

我正在尝试在 DataCamp 上使用 Python 完成 Pandas 课程,但遇到了问题。我得到了解决方案,但我只想问。测验很简单:对一组数据使用 numpy 函数

这是他们完成这个小测验的建议提示:

.agg() can take in a list of functions. The functions shouldn't be called, so don't use parentheses with them.

这是我查找每个商店typeweekly_sales 的最小值、最大值和中位数的代码type

sales_stats = sales.groupby("type")["weekly_sales"].agg([np.min(), np.max(), np.mean(), np.median()])

这是错误:

File "<stdin>", line 4, in mean
TypeError: _mean_dispatcher() missing 1 required positional argument: 'a'

所以我把它改成:

sales_stats = sales.groupby("type")["weekly_sales"].agg([np.mean(sales["weekly_sales"]),np.median,np.min,np.max])

但是又出现了一个错误,所以我看看解决办法:

sales_stats = sales.groupby("type")["weekly_sales"].agg([np.min, np.max, np.mean, np.median])

这是否意味着我们不必向这些 numpy 方法传递任何参数?并且 .agg 函数会将“weekly_sales”作为参数传递给他们每个人?如果是这样,如果我想将两个参数传递给这些方法,例如monthly_sales 这是正确的方法吗?

sales_stats = sales.groupby("type")["weekly_sales","monthly_sales"].agg([np.min, np.max, np.mean, np.median])

【问题讨论】:

    标签: python pandas aggregation


    【解决方案1】:

    您非常接近,但正确的语法是:

    sales_stats = (
        sales.groupby("type")[["weekly_sales","monthly_sales"]]
        .agg([np.min, np.max, np.mean, np.median])
    )
    

    这是因为,从 DataFrame 或在本例中为 Groupby 对象选择多个列需要列名列表。这个 sn-p 将返回 "weekly_sales" 和 "monthly_sales" 列的最小值、最大值、平均值和中位数 - 按 "type" 分组。

    这是否意味着我们不必向这些 numpy 方法传递任何参数?并且 .agg 函数会将“weekly_sales”作为参数传递给他们每个人?如果是这样,如果我想将两个参数传递给这些方法,例如monthly_sales,这是正确的方法吗?

    参数(在本例中为每个子数组)由 pandas 在后台传递给聚合函数。

    如果你想要一些更细粒度的控制,你可以像这样传递一个字典:

    sales_stats = (
        sales.groupby("type")
        .agg({
            "weekly_sales": np.mean, 
            "monthly_sales": [np.min, np.max]
        })
    )
    

    这将返回“weekly_sales”的平均值以及“monthly_sales”的最小值和最大值。查看 [

    中的一些示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-05
      • 2019-08-02
      • 2017-04-06
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 2015-03-30
      相关资源
      最近更新 更多