2017-12-28 4 views
-1

Ich habe einen Datenrahmen aus csv, in dem fehlende Daten dargestellt werden? Symbol. Ich möchte überprüfen, wie viele Zeilen es in welchen gibt? tritt mit der Häufigkeit des Auftretens auf. Bisher habe ich das gemacht, aber es zeigt die Anzahl aller Zeilen, nicht nur die in denen? tritt ein.Wie viele Zeilen im Datenframe enthalten das Fragezeichensymbol

print(sum([True for idx,row in df.iterrows() if 
any(row.str.contains('[?]'))])) 

Antwort

0

können Sie apply + str.contains verwenden, vorausgesetzt, alle Spalten Strings sind.

c = np.sum(df.apply(lambda x: x.str.contains('\?')).values) 

Wenn Sie nur String-Spalten wählen, verwenden Sie select_dtypes -

i = df.select_dtypes(exclude=['number']).apply(lambda x: x.str.contains('\?')) 
c = np.sum(i.values) 

Alternativ die Anzahl der Zeilen in ihnen enthalten ? zu finden, verwenden Sie

c = df.apply(lambda x: x.str.contains('\?')).any(axis=1).sum() 

Demo -

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 
+0

Aber diese Zahl aller Fragezeichen nicht die Anzahl der Zeilen mit Fragezeichen angezeigt. Wenn es eine Zeile mit zwei Fragezeichen gibt, wird 2 hinzugefügt. 1 – kurbielp

+0

@kurbielp Sie haben Ihr Problem als solches beschrieben. Verwenden Sie für Ihr überarbeitetes Problem 'df.apply (Lambda x: x.str.contains ('\?')). Any (1) .sum()' –

Verwandte Themen