Counting non zero values in each column of a dataframe in python

前端 未结 3 1153
温柔的废话
温柔的废话 2020-12-07 22:54

I have a python-pandas-dataframe in which first column is user_id and rest of the columns are tags(tag_0 to tag_122). I have the data in the following format:



        
3条回答
  •  庸人自扰
    2020-12-07 23:17

    To count nonzero values, just do (column!=0).sum(), where column is the data you want to do it for. column != 0 returns a boolean array, and True is 1 and False is 0, so summing this gives you the number of elements that match the condition.

    So to get your desired result, do

    df.groupby('user_id').apply(lambda column: column.sum()/(column != 0).sum())
    

提交回复
热议问题