如何对熊猫进行条件聚合

时间:2019-06-07 09:45:07

标签: python pandas

我想对大熊猫进行条件聚合,但是有两个条件,我看到了这个Python Pandas Conditional Sum with Groupby,发现确实有用,但是如果我添加另一个条件,例如:

g.apply(lambda x: x[x[x['key2'] == 'one']['data2']<0.4]['data1'].sum()) 即添加一个条件,我想将Key2等于1并且data2小于0.4的条件相加。但这不起作用。

这是我得到的错误: 作为索引器提供的不可对齐的布尔系列(布尔系列和被索引对象的索引不匹配

1 个答案:

答案 0 :(得分:1)

如果x的行数为N1,则x[x['key2'] == 'one']的行数将为N2 <= N1,并且x[x['key2'] == 'one']['data2']<0.4的行数也将为N2。现在,在最后的x[...]阶段,x有N1行,[...]内部的掩码(即x[x['key2'] == 'one']['data2']<0.4)有N2行。而且,您无法对具有不同长度的布尔掩码的数据帧进行切片。因此,您可以使用@pmarcol的建议:

g.apply(lambda x: x[(x['key2'] == 'one') & (x['data2'] < 0.4)]['data1'].sum())