pandas groupby计算列中的零数

MGs*_*MGs 0 python dataframe pandas

我有一个数据框,例如:

Date             B           C   
20.07.2018      10           8
20.07.2018       1           0
21.07.2018       0           1
21.07.2018       1           0
Run Code Online (Sandbox Code Playgroud)

如何计算每个日期的每列的零和非零值?使用.sum()对我没有帮助,因为它会将非零值相加.谢谢!

例如:零值的预期输出:

Date          B         C
20.07.2018    0         1
21.07.2018    1         1
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

我认为需要DataFrameGroupBy.agg通过0和比较sum:

df1 = df.groupby('Date').agg(lambda x: x.eq(0).sum())
print (df1)

            B  C
Date            
20.07.2018  0  1
21.07.2018  1  1
Run Code Online (Sandbox Code Playgroud)
df2 = df.groupby('Date').agg(lambda x: x.ne(0).sum())
print (df2)
            B  C
Date            
20.07.2018  2  1
21.07.2018  1  1
Run Code Online (Sandbox Code Playgroud)

  • @MGs - 只需将 `eq` 更改为 `ne` (2认同)