是否有办法在一步中分组和计算统计度量?



我知道我可以计算唯一计数,平均值,中位数,峰度偏度单独并合并到一个数据框架中,但与R数据相比,这是很多步骤。表格,你可以一步算出所有这些。有没有一种方法可以让我做一个groupby然后用Python一步算出所有这些?

df <- data[,.(ItemCount= uniqueN(Item),
Median_val = median(Value),
Avg_val = mean(Value),
Skew_val = skewness(Value),
Kurt_val = kurtosis(Value)),.(Year, Category)][order(Year,Category)]

有了RootTwo在评论部分提供的参考链接,我能够解决我自己的问题。注意峰度,我们不能用aggfunc="kurt"。它将返回一个错误"'SeriesGroupBy' object has no attribute 'kurt'

下面是我的解决方案:

df = (data.groupby(['Year', 'Category'], as_index=False)
.agg(ItemCount = pd.NamedAgg(column="Item", aggfunc="nunique"), 
mean = pd.NamedAgg(column="Value", aggfunc="mean"),
median = pd.NamedAgg(column="Value", aggfunc="median"), 
skew = pd.NamedAgg(column="Value", aggfunc="skew"),  
kurt =  pd.NamedAgg(column="Value", aggfunc=pd.DataFrame.kurt))
)

相关内容

  • 没有找到相关文章

最新更新