如何计算某个特定名称在Pandas数据框列中出现的次数?

iyr7buue  于 2022-11-05  发布在  其他
关注(0)|答案(3)|浏览(141)

我有一列名字。我需要统计一个特定名字在该列中出现的次数。

Column:
Dave
John
John
Thanos
Bob

我需要的东西像:

[in] df['Column'].count_name('John')
[out] 2

使用value_counts()不起作用,因为列中有数千个名称,其中许多名称只出现一次。如果以前有人问过/回答过这个问题,我很抱歉,但我一直无法找到一种搜索它的方法,它不仅会给予我一个告诉我使用value_counts()的答案。
谢谢你!

yizd12fk

yizd12fk1#

仅用于使用numpy.count_nonzero加速

import numpy as np 

np.count_nonzero(df['Column']=='John')
Out[186]: 2
pbpqsu0x

pbpqsu0x2#

请尝试使用以下方法:
df['Column:'].value_counts()['John']

In [6]: %timeit df[0].value_counts()['John']
1000 loops, best of 3: 548 µs per loop

In [7]: %timeit df[0].eq('John').sum()
The slowest run took 8.19 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 311 µs per loop

In [8]: %timeit np.count_nonzero(df[0]=='John')
10000 loops, best of 3: 162 µs per loop

编辑:最快的是使用np.count_nonzero...
显然,使用eq()比使用value_counts()更快,这是显而易见的,因为value_counts计算所有值的计数,而.eq()只计算给定值的计数。

luaexgnf

luaexgnf3#

我也有类似的问题。
但如果您的数据看起来像
Dave,姓1
John,姓1
John,姓2
Thanos,姓氏3
Bob,姓4
如何计算surname1 & john在列中出现的次数

相关问题