如何计算特定名称在熊猫数据框列中出现的次数?

时间:2019-04-14 22:23:21

标签: python pandas

我有一列名字。我需要计算一个特定名称在该列中出现了多少次。

Column:
Dave
John
John
Thanos
Bob

我需要类似的东西:

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

使用value_counts()不起作用,因为该列中有成千上万个名称,其中许多仅出现一次。很抱歉,如果您之前曾问过/回答过这个问题,但是我一直无法找到一种搜索方法,不仅能给我答案,还可以告诉我使用value_counts()

谢谢!

2 个答案:

答案 0 :(得分:1)

只需使用numpy.count_nonzero

import numpy as np 

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

答案 1 :(得分:0)

尝试使用此:

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()仅计算给定值。