计算数据框的一列中值(零)的出现次数

时间:2019-07-23 11:44:59

标签: python dataframe

我想让数据框中的每一列都出现一个值(在这种情况下为0)。

我尝试过此函数,该函数迭代一列col并计数0。但是我需要一次知道所有列的出现,这意味着我不需要为每个列使用此函数。

def count_zero(df,col): 
    count = 0
    for ele in df[:,col]: 
        if (ele == 0): 
            count = count + 1
    return count 
print(count_zero(df,1))

错误消息: TypeError:无法散列的类型:'sl​​ice'

1 个答案:

答案 0 :(得分:0)

您可以使用.eq(0)来获取一个布尔df,以指示该值为0,然后使用.sum()来获取每列中有多少True个值。

示例:

import pandas as pd

df = pd.DataFrame.from_dict(
    {"A": [x ** 2 if x % 2 else 0 for x in range(20)],
     "B": [x ** 3 if x % 3 else 0 for x in range(20)],
     "C": [x ** 5 if x % 5 else 0 for x in range(20)]})

print(df.eq(0).sum())

输出:

A    10
B     7
C     4