Как посчитать, сколько нулевых значений, когда другие значения одного столбца не равны нулю, по группам pandas - PullRequest
0 голосов
/ 06 января 2020

Например, я получаю dataframe следующим образом:

print(df)

    ID    col1    col2
0   0     0       1
1   0     0       0
2   1     1       0
3   1     1       1
4   1     0       1

# after some groupby aggregations
# we calculate that the count of col1 zero values when col2 values are non-zero 
    ID    col1
0   0     2 

Я знаю только, как подсчитать нулевые значения dataframe по groupby pandas следующим образом:

df.groupby('col1')['col2'].agg(lambda x: x.eq(0).sum())
   ID     col1
0  0      3
1  1      2

Поэтому мне интересно, как подсчитать, сколько нулевых значений, когда значения других столбцов не равны нулю, по groupby pandas.
Я много искал, но не могу найти то, что хочу .
Если кто-нибудь сможет мне помочь, это будет здорово, благодаря вам!

1 Ответ

1 голос
/ 06 января 2020

Я не уверен, правильно ли я вас понимаю, но вам не нужно groupby в этом случае:

print( df.loc[(df['col2'] != 0) & (df['col1'] == 0), 'col1'].count() )

Отпечатки:

2

Или:

np.sum( (df['col2'] != 0) & (df['col1'] == 0) )
...