Pandas 总数=df.isnull().sum()、百分比1=df.count()、百分比=df.isnull().count()之间的差异是什么?

Pandas 总数=df.isnull().sum()、百分比1=df.count()、百分比=df.isnull().count()之间的差异是什么?,pandas,Pandas,有人能告诉我total=df.isnull.sum,percent1=df.count,df.isnull.count和理想情况下的df.isnull.count之间的差异吗?df.isnull.count应该只给出空值的所有计数,但它给出了所有值的计数。有人能帮助我理解这一点吗 下面是代码,在这里我得到变量total的输出,作为所有值的唯一null值count和percent1,作为唯一非null值count和percent,而不考虑null或notnull total= df.isnull(

有人能告诉我total=df.isnull.sum,percent1=df.count,df.isnull.count和理想情况下的df.isnull.count之间的差异吗?df.isnull.count应该只给出空值的所有计数,但它给出了所有值的计数。有人能帮助我理解这一点吗

下面是代码,在这里我得到变量total的输出,作为所有值的唯一null值count和percent1,作为唯一非null值count和percent,而不考虑null或notnull

total= df.isnull().sum().sort_values(ascending=False)
percent1= df.count()#helps to get all the non null values count
percent= df.isnull().count()
print(total)
print(percent1)
print(percent)
根据该文件的定义为:

对每列或每行的非NA单元格进行计数

使用isnull或isna将数据帧中任何类型的df更改为布尔数据帧,其中nan最初是df,使用True,否则,此数据帧中不再有nan,因此count on df.isnull将返回df的行数,因为其中不存在nan。举个例子:

df = pd.DataFrame({'a':range(4), 'b':[1,np.nan, 3, np.nan]})
print (df)
   a    b
0  0  1.0
1  1  NaN
2  2  3.0
3  3  NaN
如果在此数据帧上使用count,则会得到:

print (df.count())
a    4
b    2 # here you get 2 because you have 2 nan in the column b as defined above
dtype: int64
但是如果你在上面使用isnull,你会得到

print (df.isnull())
       a      b
0  False  False
1  False   True #was nan in column b in df
2  False  False
3  False   True
这里不再有nan,因此count的结果将是两列的行数

print (df.isnull().count())
a    4
b    4 #no more nan in df.isnull()
dtype: int64
但由于True实际上等于1,False等于0,因此使用sum方法将为df.isnull中的每个True添加一个值,这表示df中最初的nan

最后,您可以看到如下关系:

(df.count()+df.isnull().sum())==df.isnull().count()

非常感谢你。我得到了它。。谢谢你这么好的解释这是一个纯粹的熊猫问题,与机器学习或人工智能无关-请不要垃圾邮件无关的标签删除好的,我会处理它
(df.count()+df.isnull().sum())==df.isnull().count()