跨多个列计算字符串值以创建新的总计列的有效方法

Efficient way to count string values across multiple columns to create new total column

我有一个包含 'Yes/No' 个回复的调查回复数据框。我想创建一个新的 column/variable,即“是”响应的总数。

我可以将所有 'Yes/No' 替换为“1/0”,然后使用:

df['total_variable'] = df.iloc[:, 16:22].sum(axis=1)

或者我可以写一个 for 循环。

但我只是想知道是否还有其他有效的方法来做到这一点?

而是用 DataFrame.eq 替换 Yes 的比较,然后用 sum 计算 Trues:

df['total_variable'] = df.iloc[:, 16:22].eq('Yes').sum(axis=1)