Хотите создать функцию python из фрейма данных в pandas

#python #pandas

#питон #панды

Вопрос:

У меня есть фрейм данных, содержащий различные столбцы, один из sex которых имеет 3 разных типа значений:

  • Мужской
  • Женский
  • NaN

а другой-это employment типы:

  • занятые
  • безработный

Как я могу создать функцию, которая принимает две строки (т. е. имена столбцов, представляющих интерес) Эл.G функция( sex , employment ) и сказать, что я хочу присвоить значения в фрейме данных которых sex значение столбца мужчина = 1, Женщина = 2, НАН/прочая = 5 F и к employment , занятых = 10, безработные = 5 — затем сделайте то функция возвращает сумму двух значений выше?

например, функция(«Мужчина», «занятый»)

 output = 11  

Ответ №1:

Для этого могут быть сотни способов, и я все еще учусь. Так

  1. Создайте словарь для сопоставления

d = {'male': 1, 'female': 2, nan: 5, 'employed': 10, 'unemployed': 5}

  1. Создайте новые столбцы с целочисленными значениями карты

df['Sex_Value'] = df['Sex'].map(d)

df['Employement_Value'] = df['Employement'].map(d)

df['Total'] = df['Sex_Value'] df['Employement_Value']

  1. здесь тоже есть несколько способов

df.query("Sex == 'male' amp; Employement == 'employed'")['Total']