Pandas groupby索引计数非空白

时间:2014-08-08 17:32:41

标签: python pandas count

我有一个类似于下面的数据集:

index  qty change  price change
A          +
B          +            -
B
C
C          -
C          -  
C          -
D                       +

我想以这样的方式对这个进行分组/聚合,即在索引级别计算任何非空白的数量变化或价格变化的实例。意思是,我希望如此总结上述数据集:

index  qty change  price change
A          1
B          1            1
C          3
D                       1

我一直在玩groupby().count(),但似乎无法仅隔离非黑名单(这些列只会填充+或 - ,所以如果更容易隔离那种方式也可以)。

对于如何最好地解决这个问题的任何想法将不胜感激!

1 个答案:

答案 0 :(得分:1)

我可以设置布尔列,其值取决于源列是否为非空白:

df['price_bool'] = df.price_change != ' '
df['qty_bool'] = df.qty_change != ' '

现在我可以使用简单的聚合:

In [53]: df.groupby('index')[['price_bool', 'qty_bool']].sum()
Out[53]:
       price_bool  qty_bool
index
A               0         1
B               1         1
C               0         3
D               1         0