#python #pandas
#питон #панды
Вопрос:
У меня есть фрейм данных, содержащий различные столбцы, один из sex
которых имеет 3 разных типа значений:
- Мужской
- Женский
- NaN
а другой-это employment
типы:
- занятые
- безработный
Как я могу создать функцию, которая принимает две строки (т. е. имена столбцов, представляющих интерес) Эл.G функция( sex
, employment
) и сказать, что я хочу присвоить значения в фрейме данных которых sex
значение столбца мужчина = 1, Женщина = 2, НАН/прочая = 5 F и к employment
, занятых = 10, безработные = 5 — затем сделайте то функция возвращает сумму двух значений выше?
например, функция(«Мужчина», «занятый»)
output = 11
Ответ №1:
Для этого могут быть сотни способов, и я все еще учусь. Так
- Создайте словарь для сопоставления
d = {'male': 1, 'female': 2, nan: 5, 'employed': 10, 'unemployed': 5}
- Создайте новые столбцы с целочисленными значениями карты
df['Sex_Value'] = df['Sex'].map(d)
df['Employement_Value'] = df['Employement'].map(d)
df['Total'] = df['Sex_Value'] df['Employement_Value']
- здесь тоже есть несколько способов
df.query("Sex == 'male' amp; Employement == 'employed'")['Total']