Как заполнить столбец, основываясь на 3 других?
Нужно создать столбец OverAll_PassStatus и записать в него для каждого студента 'F', если студент не сдал хотя бы один из трех экзаменов, а иначе 'P'. Как это сделать? Пробовал в гугле найти - не получилось. Подскажите пожалуйста.

Ответы (2 шт):
Автор решения: Namerek
→ Ссылка
import pandas as pd
data = [
{
'A': 1,
'B': 2,
'C': 3
},
{
'A': 4,
'B': 5,
'C': 6
},
{
'A': 7,
'B': 8,
'C': 9
},
{
'A': 10,
'B': 11,
'C': 12
},
{
'A': 1,
'B': 2,
'C': 3
},
]
def mult(y):
a, b, c = y
return a * b * c
df = pd.DataFrame(data)
df['D'] = df[['A', 'B', 'C']].apply(mult, axis=1)
Автор решения: CrazyElf
→ Ссылка
Ну вот, например, хотя можно и менее заковыристо написать, наверное:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.choice(['P','F'], (10,3)))
df['OverAll_PassStatus'] = \
df.apply(lambda x: 'PF'[any(map('F'.__eq__, x))], axis=1)
df
Вывод:
| 0 | 1 | 2 | OverAll_PassStatus | |
|---|---|---|---|---|
| 0 | P | F | P | F |
| 1 | P | F | P | F |
| 2 | F | F | F | F |
| 3 | F | P | F | F |
| 4 | P | P | P | P |
| 5 | P | P | P | P |
| 6 | P | F | P | F |
| 7 | F | P | F | F |
| 8 | P | F | P | F |
| 9 | P | F | F | F |
