passend habe ich pandas Datenrahmen von der Form, df =Conditional Zählung über eine Zeile in pandas wenn eine Zeichenfolge
index,result1,result2,result3
0 s u s
1 u s u
2 s
3 s s u
i möchte eine andere Spalte hinzuzufügen, die eine Liste von der Anzahl von Malen enthält s tritt in diese Reihe, beispielsweise
index,result1,result2,result3,count
0 s u s 2
1 u s u 1
2 s 1
3 s s u 2
i den folgenden Code
col=['result1','result2','result3']
df[cols].count(axis=1)
aber diese Rückkehr versucht haben, s
0,3
1,3
2,1
3,3
so zählt dies die Anzahl der Elemente, ich habe dann versucht
df[df[cols]=='s'].count(axis=1)
aber das gab die folgenden Fehler: "Kann nicht vergleichen [ 's'] mit Blockwerten"
jede Hilfe wäre sehr
Was sind die fehlenden Werte hier? Sind sie leere Saiten oder 'NaN'? Was zeigt 'df.info()'? 'df == 's'' funktioniert, wenn Sie alle str oder gemischte dtypes haben, aber wenn Sie irgendwelche reinen numerischen Spalten oder Zeilen haben, dann wird dies nicht funktionieren, dies wird passieren, wenn Sie irgendwelche Zeilen mit allen' NaN' haben versuche 'df.fillna ('', inplace = True)' then '(df [cols] = 's'). count (axis = 1)' sollte funktionieren – EdChum
@WGP, Vielleicht, 'df ['count'] = (df [cols] .values == 's'). sum (1) 'wäre eine gute Alternative? –