Я создал функцию «зарплата». Если зарплата меньше 30000, она вернет 0; если зарплата составляет от 30000 до 40000, она вернет 1; иначе, если он выше 40000, он вернет 2.
def salary(x):
if x < 30000:
return 0
elif x >= 30000 and x < 40000:
return 1
else:
return 2
В моем наборе данных «зарплата» есть только один столбец. Используя преобразование применения, я создал новый столбец salary_level, который будет сохранять значения из функции salary.
df['salary_level'] = df['salary'].apply(salary)
df.head()
Вывод
Теперь я хочу сделать то же самое с использованием классов, но я получаю сообщение об ошибке:
class Salary():
def __init__(self,x):
self.x = x
def sal(self):
if self.x < 30000:
return 0
elif self.x >= 30000 and self.x < 40000:
return 1
else:
return 2
df['salary_level'] = df.apply(sal)
Ошибка
Ошибка: ("Объект" Series "не имеет атрибута 'x' ", 'произошло при индексной зарплате')