我需要获取特定索引的计数。目前使用group_by然后使用size来完成此操作。唯一的问题是这种方法不会为非现有索引返回0。我们实际上需要这些信息。有更优雅的方式吗?
按如下方式计算时:
counts = brands.groupby('categories').size()
返回:
count
category
A 4
我需要它返回:
count
category
A 4
B 0
C 0
答案 0 :(得分:1)
您可以使用groupby之后的完整类别列表重新编制索引:
In [11]: df = pd.DataFrame([["A"], ["A"], ["A"]], columns=["category"])
In [12]: df
Out[12]:
category
0 A
1 A
2 A
In [13]: res = df.groupby("category").size()
In [14]: res
Out[14]:
category
A 3
dtype: int64
您必须使用fill_value
来确保它为缺失值:
In [15]: res.reindex(["A", "B", "C"], fill_value=0)
Out[15]:
category
A 3
B 0
C 0
dtype: int64