我有一个类似于下面的数据集:
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()
,但似乎无法仅隔离非黑名单(这些列只会填充+或 - ,所以如果更容易隔离那种方式也可以)。
对于如何最好地解决这个问题的任何想法将不胜感激!
答案 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