我有从csv制作的数据框,其中缺少的数据由?表示?符号。我想检查一下有多少行?发生次数。 到目前为止,我做了这个,但它显示了所有行的数量,而不仅仅是那些行?发生。
print(sum([True for idx,row in df.iterrows() if
any(row.str.contains('[?]'))]))
答案 0 :(得分:0)
您可以使用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