您需要创建一个新列,在其中放置前列中“是”元素的总和:
import pandas as pd
df = pd.DataFrame({'A': {0: 'Да', 1: 'Да', 2: 'Да'},
'B': {0: 'Да', 1: 'Нет', 2: 'Да'},
'C': {0: 'Нет', 1: 'Да', 2: 'Нет'},
'D': {0: 'Да', 1: 'Да', 2: 'Нет'}})
A B C D
0 Да Да Нет Да
1 Да Нет Да Да
2 Да Да Нет Нет
计算一行中的元素得到:
x = (df.loc[1, 'A': 'D'] == 'Да').sum()
print(x)
3
但循环失败:
df.loc[:, 'E'] = [(df.loc[i, 'B':'D'] == 'Да').sum() for i in range(len(df) + 1)]
给出错误消息:
关键错误:3
此类任务在 Pandas 中无需循环即可解决:
结果: