构建单独的类,在单独的DF中计数和显示



我使用的DataFrame如下所示:

Index   Type    Value
0       A       4
1       A       9
2       C       51
3       B       40
4       C       32
5       C       14

我想将DataFrame中的项目分类为类/范围0-1、11-50、51-100,并创建一个单独的DataFrame,显示这些类中每个类的Type数量。

Class   A   B   C
0-10    2   0   0
11-50   0   1   2
51-100  0   0   1

有人能帮忙吗?

您可以在两行中完成:

df['class'] = pd.cut(df['Value'], [0, 10, 50, 100])
df.groupby('class')['Type'].value_counts().rename("count").reset_index().pivot('class', 'Type', 'count').fillna(0).astype(int)

第一行创建您想要的类,第二行给出计数。这里的最终结果是一个透视表(因此使用了pivot(。结果是:

Type       A  B  C
class
(0, 10]    2  0  0
(10, 50]   0  1  2
(50, 100]  0  0  1

可以随意将class映射到您要求的确切格式,但一般的想法是使用pd.cut,它根据值所属的间隔来分配值。

最新更新