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