首页 > 解决方案 > 如何在熊猫数据透视表中聚合仅超过 1 个的组

问题描述

我有以下代码,但我只想聚合两个或多个组:

 pivot = pd.pivot_table(pct, values = ['CERT'], index= 'ST', aggfunc={'CERT': [min, max, np.mean]}).reset_index(level = 0).set_index('ST', drop = False)

尝试过 Grouper,但后来意识到这仅适用于时间序列。

 Sample Data Input:

 ST  CERT
 AL  8909
 TX  9805
 TX  7890

 Sample Data Output:

 ST  Min_Cert Max_Cert Mean_Cert
 TX  7890     9805     X

从上面可以看出,只有 TX 数据被聚合,因为它有两个以上的条目。

标签: pythonpandaspivot-table

解决方案


为什么不首先过滤所有具有count1 的行?

c = df.groupby('ST').count()>1
new_df = df[df.ST.isin(c[c.values].index)]

然后只需使用您的工作代码

pd.pivot_table(new_df, values = ['CERT'], index= 'ST', aggfunc={'CERT': [min, max, np.mean]}).reset_index(level = 0).set_index('ST', drop = False)

推荐阅读