不要在group_by上丢弃非现有索引 - Pandas

时间:2015-08-19 19:38:14

标签: python pandas dataframe

我需要获取特定索引的计数。目前使用group_by然后使用size来完成此操作。唯一的问题是这种方法不会为非现有索引返回0。我们实际上需要这些信息。有更优雅的方式吗?

按如下方式计算时:

counts = brands.groupby('categories').size()

返回:

          count
category
A             4

我需要它返回:

         count
category 
A            4
B            0
C            0

1 个答案:

答案 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