У меня панды dataframe вида, DF =Условного подсчет по строке в панде при совпадении строки
index,result1,result2,result3
0 s u s
1 u s u
2 s
3 s s u
я хотел бы добавить еще один столбец, который содержит список того, сколько раз ей происходит в что строка, например
index,result1,result2,result3,count
0 s u s 2
1 u s u 1
2 s 1
3 s s u 2
Я попытался следующий код
col=['result1','result2','result3']
df[cols].count(axis=1)
, но это возвращение s
0,3
1,3
2,1
3,3
так это подсчитывает количество элементов, я затем попытался
df[df[cols]=='s'].count(axis=1)
но возвратил следующую ошибку: "Не удалось сравнить [ 's'] со значениями блока"
Любая помощь была бы принята с благодарностью
Какие недостающие значения здесь? Это пустые строки или «NaN»? что делает 'df.info()' show? 'df == 's'' будет работать, если у вас есть все str или смешанные типы dtypes, но если у вас есть чистые числовые столбцы или строки, это не сработает, это произойдет, если у вас есть любые строки со всеми« NaN ». попробуйте 'df.fillna ('', inplace = True)' then '(df [cols] = 's'). count (axis = 1)' должен работать – EdChum
@WGP, Возможно, 'df ['count'] = (df [cols] .values == 's'). sum (1) 'будет хорошей альтернативой? –