我想计算一个数据框中国家/地区的出现次数,下面是样本,并按发生次数查找前2个国家/地区。
Date Location
0 09/17/1908 Virginia
1 07/12/1912 New Jersey
2 08/06/1913 Canada
3 09/09/1913 England
4 10/17/1913 Germany
5 03/05/1915 Belgium
6 09/03/1915 Germany
7 07/28/1916 Bulgeria
8 09/24/1916 England
9 10/01/1916 England
结果值应如下所示:
Location Count
England 3
Germany 2
答案 0 :(得分:1)
countCollection = df['collection'].value_counts()
.value_counts()
会计算数据框中名为collection
的集合中的项目。
另外,如你所说,你是Python的新手,要获得最终价值:
countCollection["a"]
对于具有键“a”的行,将从返回的计数集合中获取计数值。
答案 1 :(得分:0)
counts = df.groupby('Location').size()
counts
的类型为pandas.Series
。您可以通过
counts.sort_values(inplace=True)
比较Nick的答案:
import pandas as pd
import numpy as np
# number of items in list
N = 1e4
# create a list uniformely samples characters
l = np.random.choice( list('abcd'), N )
# create a DataFrame
df = pd.DataFrame( l, columns=['char'] )
使用ipython magic命令timeit进行N=1e4
In [1]: %timeit df.char.value_counts()
1000 loops, best of 3: 1.34 ms per loop
In [2]: %timeit df.groupby('char').size()
1000 loops, best of 3: 1.01 ms per loop
和N=1e6
In [1]: %timeit df.char.value_counts()
10 loops, best of 3: 64.2 ms per loop
In [2]: %timeit df.groupby('char').size()
10 loops, best of 3: 73.2 ms per loop
对于较小的DataFrame,groupby
& size
比value_counts
快,但对于较大的DateFrame,value_counts
比groupby
& size