我有一个df_things看起来像这样的 DataFrame ,我想在训练之前预测分类的质量A B C CLASS-----------------------al1 bal1 cal1 Shipal1 bal1 cal1 Shipal1 bal2 cal2 Shipal2 bal2 cal2 Cowal3 bal3 cal3 Caral1 bal2 cal3 Caral3 bal3 cal3 Car我想按类对行进行分组,以便了解特征的分布。我这样做(例如,在 col "B" 上),df_B = df_things.groupby('CLASS').B.value_counts()这给了我结果CLASS B -------------ship bal1 2 bal2 1cow bal2 2car bal2 1 bal3 2我想要的是仅可视化具有多个值的组,使其看起来像这样:CLASS B -------------ship bal1 2 bal2 1car bal2 1 bal3 2我有点卡住了,所以有什么想法吗?
2 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
您可以使用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
萧十郎
TA贡献1815条经验 获得超13个赞
解决方案来自 crosstab
s=pd.crosstab(df.CLASS,df.B)
s[s.ne(0).sum(1)>1].replace(0,np.nan).stack()
CLASS B
Car bal2 1.0
bal3 2.0
Ship bal1 2.0
bal2 1.0
dtype: float64
添加回答
举报
0/150
提交
取消