python - Pandas GroupBy - 仅显示具有多个独特特征值的组

标签 python pandas compare unique pandas-groupby

我有一个 DataFrame df_things 看起来像这样,我想在训练前预测分类的质量

A    B     C      CLASS
-----------------------
al1  bal1  cal1   Ship
al1  bal1  cal1   Ship
al1  bal2  cal2   Ship
al2  bal2  cal2   Cow
al3  bal3  cal3   Car
al1  bal2  cal3   Car
al3  bal3  cal3   Car

我想按类对行进行分组,以便了解特征的分布。我这样做(例如,在“B”栏上),

df_B = df_things.groupby('CLASS').B.value_counts()

这给了我结果

CLASS  B 
-------------
ship   bal1  2 
       bal2  1
cow    bal2  2
car    bal2  1
       bal3  2

我想要做的是仅可视化具有多个值的组,使其看起来像这样:

CLASS  B 
-------------
ship   bal1  2 
       bal2  1
car    bal2  1
       bal3  2

我有点卡住了,有什么想法吗?

最佳答案

您可以使用 groupby 来过滤 nunique 计数超过 1 的组。

v = df_things.groupby('CLASS').B.value_counts()
v[v.groupby(level=0).transform('nunique').gt(1)]

CLASS  B   
Car    bal3    2
       bal2    1
Ship   bal1    2
       bal2    1
Name: B, dtype: int64

关于python - Pandas GroupBy - 仅显示具有多个独特特征值的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53979178/

相关文章:

ios - 从共享属性的 NSArray 中查找 NSManagedObjects

c++ - 字符串数组到 C++ 函数

javascript - 比较javascript中的多维数组

python - 从图表中提取绘图线

python - 根据 Python 数据框中的条件创建包含所有唯一可能组合的列表

python - 从 fixture 内部跳过测试

python - Pandas 用部分通配符读取csv文件

python - 对类似列表的对象进行乘积和求和的简单矢量化

Python While循环计算最小公倍数

python - 训练人脸识别模型