У меня есть следующий фрейм данных df_shots
:
TableIndex MatchID GameWeek Player ... ShotPosition ShotSide Close Position
ShotsDetailID ...
6 5 46605 1 Roberto Firmino ... very close range N/A close very close rangeN/A
8 7 46605 1 Roberto Firmino ... the box the centre not close the boxthe centre
10 9 46605 1 Roberto Firmino ... the box the left not close the boxthe left
17 16 46605 1 Roberto Firmino ... the box the centre close the boxthe centre
447 446 46623 2 Roberto Firmino ... the box the centre close the boxthe centre
... ... ... ... ... ... ... ... ... ...
6656 6662 46870 27 Roberto Firmino ... very close range N/A close very close rangeN/A
6666 6672 46870 27 Roberto Firmino ... the box the right not close the boxthe right
6674 6680 46870 27 Roberto Firmino ... the box the centre not close the boxthe centre
6676 6682 46870 27 Roberto Firmino ... the box the left not close the boxthe left
6679 6685 46870 27 Roberto Firmino ... outside the box N/A not close outside the boxN/A
Для ясности, все возможные значения «Position»:
positions = ['a difficult anglethe left',
'a difficult anglethe right',
'long rangeN/A',
'long rangethe centre',
'long rangethe left',
'long rangethe right',
'outside the boxN/A',
'penaltyN/A',
'the boxthe centre',
'the boxthe left',
'the boxthe right',
'the six yard boxthe left',
'the six yard boxthe right',
'very close rangeN/A']
Теперь я бы сопоставил следующие значения x / y для каждого имени 'Position', сохраняя значение в новом столбце 'Position XY':
the_boxthe_center = {'y':random.randrange(25,45), 'x':random.randrange(0,6)}
the_boxthe_left = {'y':random.randrange(41,54), 'x':random.randrange(0,16)}
the_boxthe_right = {'y':random.randrange(14,22), 'x':random.randrange(0,16)}
very_close_rangeNA = {'y':random.randrange(25,43), 'x':random.randrange(0,4)}
six_yard_boxthe_left = {'y':random.randrange(33,43), 'x':random.randrange(4,6)}
six_yard_boxthe_right = {'y':random.randrange(25,33), 'x':random.randrange(4,6)}
a_diffcult_anglethe_left = {'y':random.randrange(43,54), 'x':random.randrange(0,6)}
a_diffcult_anglethe_right = {'y':random.randrange(14,25), 'x':random.randrange(0,6)}
penaltyNA = {'y':random.randrange(36), 'x':random.randrange(8)}
outside_the_boxNA = {'y':random.randrange(14,54), 'x':random.randrange(16,28)}
long_rangeNA = {'y':random.randrange(0,68), 'x':random.randrange(40,52)}
long_rangethe_centre = {'y':random.randrange(0,68), 'x':random.randrange(28,40)}
long_rangethe_right = {'y':random.randrange(0,14), 'x':random.randrange(0,24)}
long_rangethe_left = {'y':random.randrange(54,68), 'x':random.randrange(0,24)}
Я пробовал:
if df_shots['Position']=='very close rangeN/A':
df_shots['Position X/Y']==very_close_rangeNA
...# and so on
Но я получить:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Как мне это сделать?