对dataframe进行值计数

Series的value_counts()可以对值进行计数,但DataFrame没这个方法,不过可以使用apply来调用value_counts()方法,apply将DataFrame分解成Series并分别代入value_counts()中求得计数结果,并将计数结果重新再组合成DataFrame

data=pd.DataFrame(np.random.randint(0,11,size=100).reshape(10,10))
data
	0	1	2	3	4	5	6	7	8	9
0	6	2	3	0	2	7	7	8	6	10
1	9	1	7	5	2	1	6	1	4	3
2	8	2	5	6	4	8	1	8	1	8
3	1	10	5	8	10	6	8	3	10	2
4	3	10	9	3	6	8	5	4	10	6
5	7	3	6	5	9	5	4	9	6	7
6	4	8	7	5	5	4	2	4	10	8
7	10	9	3	9	7	7	8	5	1	10
8	1	3	1	3	5	9	10	6	8	10
9	2	6	6	10	6	9	3	8	1	10

data.apply(pd.value_counts)
	0	1	2	3	4	5	6	7	8	9
0	NaN	NaN	NaN	1.0	NaN	NaN	NaN	NaN	NaN	NaN
1	2.0	1.0	1.0	NaN	NaN	1.0	1.0	1.0	3.0	NaN
2	1.0	2.0	NaN	NaN	2.0	NaN	1.0	NaN	NaN	1.0
3	1.0	2.0	2.0	2.0	NaN	NaN	1.0	1.0	NaN	1.0
4	1.0	NaN	NaN	NaN	1.0	1.0	1.0	2.0	1.0	NaN
5	NaN	NaN	2.0	3.0	2.0	1.0	1.0	1.0	NaN	NaN
6	1.0	1.0	2.0	1.0	2.0	1.0	1.0	1.0	2.0	1.0
7	1.0	NaN	2.0	NaN	1.0	2.0	1.0	NaN	NaN	1.0
8	1.0	1.0	NaN	1.0	NaN	2.0	2.0	3.0	1.0	2.0
9	1.0	1.0	1.0	1.0	1.0	2.0	NaN	1.0	NaN	NaN
10	1.0	2.0	NaN	1.0	1.0	NaN	1.0	NaN	3.0	4.0

data.apply(pd.value_counts).sum(axis=1).astype(np.int)
0      1
1     10
2      7
3     10
4      7
5     10
6     13
7      8
8     13
9      8
10    13
dtype: int32
    原文作者:景韦
    原文地址: https://blog.csdn.net/jewely/article/details/89391179
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞