我正试图在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.这是我的代码,用来查找每个商店weekly_sales的min、max、中值。
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])发布于 2021-04-19 19:33:48
您非常接近,但是正确的语法应该是:
sales_stats = (
sales.groupby("type")[["weekly_sales","monthly_sales"]]
.agg([np.min, np.max, np.mean, np.median])
)这是因为,从一个DataFrame中选择多个列,或者在本例中选择一个Groupby对象,需要一个列名列表。这个片段将返回"weekly_sales“和"monthly_sales”列的最小值、最大值、平均值和中位数--按“类型”分组。
,这是否意味着我们不需要向这些numpy方法传递任何参数?.agg函数将把"weekly_sales“作为参数传递给每个人?如果是这样的话,如果我想向这些方法传递两个参数,例如monthly_sales,这是一种正确的方法吗?
参数(本例中的每个子数组)被熊猫传递到聚合函数。
如果您想要更细粒度的控件,可以传递如下所示的字典:
sales_stats = (
sales.groupby("type")
.agg({
"weekly_sales": np.mean,
"monthly_sales": [np.min, np.max]
})
)这将返回"weekly_sales“的平均值以及"monthly_sales”的最小和最大值。请参阅[
https://stackoverflow.com/questions/67168187
复制相似问题