我有从csv制作的数据帧,其中缺少的数据由?表示?符号。我想检查一下有多少行?发生次数。到目前为止,我做了这个,但它显示了所有行的数量,而不仅仅是那些行?发生。
print(sum([True for idx,row in df.iterrows() if
any(row.str.contains('[?]'))]))
假设你的所有列都是字符串,你可以使用apply
+ str.contains
。
c = np.sum(df.apply(lambda x: x.str.contains('\?')).values)
如果您只需要选择字符串列,请使用select_dtypes
-
i = df.select_dtypes(exclude=['number']).apply(lambda x: x.str.contains('\?'))
c = np.sum(i.values)
或者,要查找包含?
的行数,请使用
c = df.apply(lambda x: x.str.contains('\?')).any(axis=1).sum()
演示 -
df
A B
0 aaa ?xyz
1 bbb que!?
2 ? ddd
3 foo? fff
df.apply(lambda x: x.str.contains('\?')).any(1).sum()
4