python - 如何在熊猫数据透视表中聚合仅超过 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 数据被聚合,因为它有两个以上的条目。
解决方案
为什么不首先过滤所有具有count
1 的行?
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)
推荐阅读
- xamarin.forms - ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序提交
- jquery - 如何使用 Jquery UI 调整表格单元格 TD 的大小?
- javascript - 正则表达式匹配固定长度的逗号分隔列表?
- data-structures - 堆数据结构的复杂性
- sql - 范围填充表
- sql - 我在哪里放置 WHERE 语句?
- amazon-web-services - 必须在 Elastic Search Query 中的 Should 查询子句中查询
- c# - 如何和谁在.net core 中调用启动类的 ConfigureServices 和 Configure 方法
- python - 在 main 中打开一个对话框
- go - VSCode如何在手表“...+207 more”中扩展字符串表达式