Сумма количество вхождений строки в строке - PullRequest
0 голосов
/ 02 ноября 2018

Я пытался найти ответ на этот вопрос, и я не могу найти его - я, должно быть, что-то неправильно понимаю.

Я просто хочу суммировать, сколько раз строка ("True") встречается в строке. Желаемый вывод ниже:

d1 = {'score': ['True', 'True', 'False'], 'score2': ['False', 'True', 'True'], 'total': [1, 2, 1]}
df1 = pd.DataFrame(data=d1)

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

попробуйте это,

df1['total']= df1.eq('True').sum(axis=1)

Если df логическое, попробуйте это,

df1['total']= df1.eq(True).sum(axis=1)

Для более чистого способа,

df1['total']= df1.sum(axis=1)

Выход:

   score score2  total
0   True  False      1
1   True   True      2
2  False   True      1
0 голосов
/ 02 ноября 2018

Строковые значения: eq + sum

df1['total'] = df1[['score', 'score2']].eq('True').sum(1)

print(df1)

   score score2  total
0   True  False      1
1   True   True      2
2  False   True      1

Логические значения: sum

В этом случае не нужно выполнять булеву проверку:

df1['total'] = df1[['score', 'score2']].sum(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...