Во-первых, проблема в следующей строке:
if work_type == 'Attacking':
Что вы, вероятно, подумали, когда писали, что pandas
будет сравнивать значение в каждой строке с 'Attacking'
и уменьшать значениеветвь.
Однако, фактически, pandas
применяет такие сравнения к целому Series
сразу.Следовательно, результатом сравнения с 'Attacking'
является не одно логическое значение, а другое Series
.Не существует однозначного способа превратить Series
логических значений в одно логическое значение, поэтому тест if
не работает.
В любом случае, это, вероятно, не лучший способсделай это.Попробуйте это:
data[['Work Rate Attacking', 'Work Rate Defending']] = data['Work Rate'].str.split('/', expand=True)
При этом используется аксессор str
, чтобы разбить Series
на DataFrame
, который затем можно назначить двум нужным столбцам.