1 回答

TA贡献1797条经验 获得超4个赞
用:
counter = df[column_names].isnull().all(axis=1).sum()
print (counter)
样品:
df = pd.DataFrame({
'A':list('abcdef'),
'Uniprot_acc':[np.nan,5,4,5,np.nan,4],
'Uniprot_id':[np.nan,8,9,4,np.nan,np.nan],
'Interpro_domain':[np.nan,3,np.nan,7,np.nan,0],
'E':[5,3,np.nan,9,np.nan,4],
})
column_names = ['Uniprot_acc',
'Uniprot_id',
'Interpro_domain']
print (df)
A Uniprot_acc Uniprot_id Interpro_domain E
0 a NaN NaN NaN 5.0
1 b 5.0 8.0 3.0 3.0
2 c 4.0 9.0 NaN NaN
3 d 5.0 4.0 7.0 9.0
4 e NaN NaN NaN NaN
5 f 4.0 NaN 0.0 4.0
counter = df[column_names].isnull().all(axis=1).sum()
print (counter)
2
说明:
首先按列表过滤列:
print (df[column_names])
Uniprot_acc Uniprot_id Interpro_domain
0 NaN NaN NaN
1 5.0 8.0 3.0
2 4.0 9.0 NaN
3 5.0 4.0 7.0
4 NaN NaN NaN
5 4.0 NaN 0.0
然后检查缺失值None和NaNs:
print (df[column_names].isnull())
Uniprot_acc Uniprot_id Interpro_domain
0 True True True
1 False False False
2 False False True
3 False False False
4 True True True
5 False True False
通过以下方式检查每行是否为真DataFrame.all:
print (df[column_names].isnull().all(axis=1))
0 True
1 False
2 False
3 False
4 True
5 False
dtype: bool
并且最后只计数Trues by sum。
添加回答
举报