分类数据计数

问题描述

我想计算熊猫输入表中的值。表输出显示了计算后的示例输出。我已经使用了代码

df2 = table.groupby(['FC_LABEL','MSW_LABEL','CHH_LABEL','RM_LABEL','ASSET_LABEL']).size().unstack(fill_value=0)

但是我得到的输出与表Groupby相同。

Input

表:输入

!output] 2

表:输出

Groupby

表格:分组依据

解决方法

您可以将DataFrame.meltcrosstab结合使用:

df1 = df.melt(var_name='type',value_name='val')
df2 = pd.crosstab(df1['type'],df1['val'])

或者:

df1 = df.melt()
df2 = pd.crosstab(df1['variable'],df1['value'])

或将DataFrame.stackSeriesGroupBy.value_countsSeries.unstack

df2 = df.stack().groupby(level=1).value_counts().unstack(fill_value=0)
,

按如下所示使用熔化和交叉表。

import pandas as pd
Table = pd.DataFrame({"FC_LABEL":["Low","Low","High","Low"],"MSW_LABEL":["High","Middle"]})
    
pd.crosstab(Table.melt()['variable'],Table.melt()['value'])