对dataframe进行值计数

这篇博客介绍了如何在Python中对DataFrame进行值计数。由于DataFrame本身没有内置的value_counts方法,作者建议使用apply函数配合value_counts(),通过将DataFrame拆分成Series并逐个应用该方法,最后再重组结果得到计数后的DataFrame。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值