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
3条答案
按热度按时间yizd12fk1#
仅用于使用
numpy.count_nonzero
加速pbpqsu0x2#
请尝试使用以下方法:
df['Column:'].value_counts()['John']
编辑:最快的是使用np.count_nonzero...
显然,使用eq()比使用value_counts()更快,这是显而易见的,因为value_counts计算所有值的计数,而.eq()只计算给定值的计数。
luaexgnf3#
我也有类似的问题。
但如果您的数据看起来像
Dave,姓1
John,姓1
John,姓2
Thanos,姓氏3
Bob,姓4
如何计算surname1 & john在列中出现的次数