gpt4 book ai didi

python - 计算 Pandas 数据帧每列中满足条件的值的数量

转载 作者:行者123 更新时间:2023-12-02 19:48:53 24 4
gpt4 key购买 nike

我有一个包含几列数据的数据框。数据中,-1相当于缺失数据。我想计算每列中 -1 值的数量。

我相信当我加载数据时我可以将 -1 注册为 NaN/缺失值,然后我看到一些使用 isna() 并计算 bool 值的东西。但是,我想要做的(对每一列应用一个条件)似乎是我应该知道如何做的基本事情,所以我想弄清楚如何以这种方式做到这一点。

这是一个例子。假设我有以下数据框:

row   A   B  C  D  E
1 3 5 6 9 -1
2 -1 3 -1 2 0
3 -1 -1 -1 1 -1

我想要得到的输出是:

A  B  C  D  E
2 1 2 0 2

我尝试过以下方法:

df.apply(lambda x: x == -1).count() # value returned was the count of all the rows
(df == -1).count() # also returned a count of all the rows.

我浏览了几个与“countif”相关的问题,但它们似乎都将条件应用于一列来选择行。我上面尝试的两个项目来自与将函数应用于每列以及计算与每列中的条件匹配的值相关的问题。

注释中建议的重复项是为整个数据帧寻找单个值,并在每列上寻找不同的标准。我希望对每一列应用相同的条件并获得每列的结果,如下面所选答案所示。

如果有任何关于如何继续的想法或想法,我将不胜感激。

最佳答案

使用DataFrame.eq + DataFrame.sum :

#You can omit to_frame and T if you don't want a DataFrame.
df.eq(-1).sum().to_frame().T
#(df==-1).sum() #similar

或者如果是str:

df.eq('-1').sum().to_frame().T

如果行是列:

df[df.columns[1:]].eq(-1).sum().to_frame().T

A B C D E
0 2 1 2 0 2

关于python - 计算 Pandas 数据帧每列中满足条件的值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58718295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com