小编esh*_*mad的帖子

熊猫中多列的逻辑与

我有一个如下所示的数据框(edata)

Domestic   Catsize    Type   Count
   1          0         1      1
   1          1         1      8
   1          0         2      11
   0          1         3      14
   1          1         4      21
   0          1         4      31
Run Code Online (Sandbox Code Playgroud)

从这个数据框中,我想计算所有计数的总和,其中两个变量(国内和 Catsize)的逻辑 AND 结果为零(0),使得

1   0    0
0   1    0
0   0    0
Run Code Online (Sandbox Code Playgroud)

我用来执行这个过程的代码是

g=edata.groupby('Type')
q3=g.apply(lambda x:x[((x['Domestic']==0) & (x['Catsize']==0) |
                       (x['Domestic']==0) & (x['Catsize']==1) |
                       (x['Domestic']==1) & (x['Catsize']==0)
                       )]
            ['Count'].sum()
           )

q3

Type
1     1
2    11
3    14
4    31
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但是,如果数据帧中的变量数量增加,则条件数量会迅速增加。那么,是否有一种聪明的方法来编写一个条件,说明如果两个(或多个)变量的 AND 运算结果为零,则执行 sum() 函数

python numpy dataframe python-3.x pandas

5
推荐指数
2
解决办法
1192
查看次数

标签 统计

dataframe ×1

numpy ×1

pandas ×1

python ×1

python-3.x ×1