python - pd.dataframe:将 df 子集为特定列中的最小特征量?
问题描述
我尝试在 pandas 中创建一个数据透视表,如果特征具有最小数量,它应该只在分组列中显示特征。例如:当我在 Level_1 列中对特征进行分组时,它应该只包括在“Level_2”列中至少出现 3 次的特征,所以我没有任何只有 1 或 2 次出现的分组特征。我想将此 df 用于绘图旭日形图,如此小的数字使图表无法阅读。
我创建了以下代码行,它似乎只创建了一个布尔掩码,而不是我正在寻找的缩减数据框。
df_new = df.groupby('Level_1').agg({'Level_2': 'count'}) > 2
生成一个充满 NaN 的无用 df 是:
df_new = df[df.groupby('Level_1').agg({'Level_2': 'count'}) > 2]
过滤 df 以仅保留每个至少 3 个数量的 Level_1 特征需要什么?
谢谢!
解决方案
试试这个。将来,请附上一个示例 df,以及您尝试访问的结果 df。
df_new = df.loc[df.groupby('Level_1')['Level_2'].transform('count').gt(2)]
推荐阅读
- python - 如何使用基于数据的函数扩展类并在编译时检查?
- c# - Razor 视图引擎何时将 IActionResult 转换为 HTML?
- javascript - 在使用邮递员测试基本的 Nodejs CRUD API 时,它给出了错误“无法发布”。如何解决这个问题?
- flutter - ChangeNotifierProvider:可以重新创建其创建的 ChangeNotifier 吗?
- mysql - MySql - 具有特定字段计数的列表
- ruby - 为什么 Ruby setter 返回传递的值,而不是实例变量的最终值?
- git - 在 Github 提交之前:你对文件管理的管家规则是什么?
- python - 如何在张量流中沿选定轴获得等级高于 2 的张量的对角线
- python - Pandas 将列与特定值进行比较
- ios - Swift 继承(扩展类)