Мне нужно создать новый столбец на основе 2 столбцов в pandas кадре данных Это заголовок кадра данных
col_1 col_2
0 -0.5 H1
1 -0.5 draw
2 -0.5 H3
3 -0.5 H1
4 -1.5 H2
5 -0.5 H1
7 -2.5 H4
8 -0.5 A2
9 -0.5 H1
12 -1.5 draw
13 9.0 draw
14 -0.5 draw
15 -0.5 A1
16 -0.5 H1
17 -0.5 draw
18 9.0 draw
19 -0.5 draw
20 -0.5 H1
21 -0.5 H2
22 -3.5 A1
Я создал функцию:
def H(d):
if d['col_1'] == -0.5 & d['col_2'].isin(['H1', 'H2', 'H3', 'H4', 'H5+']):
return 'W -0.5'
elif d['col_1'] == -0.5 & d['col_2'].isin(['A1', 'A2', 'A3', 'A4', 'A5+', 'draw']):
return 'L -0.5'
elif d['col_1'] == -1.5 & d['col_2'].isin(['H2', 'H3', 'H4', 'H5+']):
return 'W -1.5'
elif d['col_1'] == -1.5 & d['col_2'].isin(['A1', 'A2', 'A3', 'A4', 'A5+', 'draw', 'H1']):
return 'L -1.5'
elif d['col_1'] == -2.5 & d['col_2'].isin(['H3', 'H4', 'H5+']):
return 'W -2.5'
elif d['col_1'] == -2.5 & d['col_2'].isin(['A1', 'A2', 'A3', 'A4', 'A5+', 'draw', 'H1', 'H2']):
return 'L -2.5'
elif d['col_1'] == -3.5 & d['col_2'].isin(['H4', 'H5+']):
return 'W -3.5'
elif d['col_1'] == -3.5 & d['col_2'].isin(['A1', 'A2', 'A3', 'A4', 'A5+', 'draw', 'H1', 'H2', 'H3']):
return 'L -3.5'
else:
return 'und'
затем использовал применить для создания нового столбца:
df['new_col'] = df.apply(H, axis=1)
он возвращает ошибку:
AttributeError: ("'str' object has no attribute 'isin'", 'occurred at index 0')
Мне нужно создать новый столбец с помощью apply или любого другого метода, но я предпочитаю создать функцию затем с помощью apply