使用指定列表计算Pandas中出现的次数

时间:2017-02-28 13:53:04

标签: python pandas

我有一个可能的整数列表:

item_list = [0,1,2,3]

并且某些数字不一定会出现在我的数据框中。例如:

df = 
   a
0  0
1  0
2  2
3  0
4  1
5  0
6  1
7  0

其中

df['a'].value_counts()

将产生

0 5
1 2
2 1
Name: a, dtype: int64

但我对所有'item_list = [0,1,2,3]'的出现感兴趣,所以基本上,我希望看到类似的东西:

0 5
1 2
2 1
3 0
Name: a, dtype: int64

第一列是'item_list'

如何获得此结果?

2 个答案:

答案 0 :(得分:5)

您也可以使用reindex:

 df['a'].value_counts().reindex(item_list).fillna(0)

答案 1 :(得分:3)

您可以将值转换为Categorical

item_list = [0,1,2,3]
df.a = df.a.astype('category', categories=item_list)
print (df['a'].value_counts())
0    5
1    2
2    1
3    0
Name: a, dtype: int64

使用reindex和参数fill_value

print (df['a'].value_counts().reindex(item_list, fill_value=0))
0    5
1    2
2    1
3    0
Name: a, dtype: int64