编程语言
首页 > 编程语言> > python-Pandas GroupBy-仅显示具有多个唯一特征值的组

python-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过滤不唯一计数大于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

标签:pandas-groupby,pandas,unique,compare,python
来源: https://codeday.me/bug/20191024/1923711.html