Обработка данных в категориальных и числовых - PullRequest
0 голосов
/ 14 мая 2019

Я новичок в Python.У меня есть датафрейм, как показано ниже:

d = {'Categorical': ['A','B','C','A'], 
      'Order':      ['First','Second', 'First','Second'], 
      'Numerical':  [20,22,21,25]} 
df = pd.DataFrame(data=d)

Я должен обработать этот кадр, чтобы получить ниже:

Categorical Order   Numerical
1           1       20
2           2       22
3           1       21
1           2       25

Трюк здесь следующий:

Python должен понимать, чтоCategorical столбец категорический.И столбец Order является числовым, если порядок имеет значение.

Какое кодирование мне следует делать, учитывая dtype (s) здесь?

1 Ответ

0 голосов
/ 14 мая 2019

Вы ищете метод .map()

Для начала нужен словарь с «переводом» категорий на значения:

order_dict = {'First':1,'Second':2}

тогда просто вызовите карту в столбце

df['Order_value'] = df.Order.map(order_dict)


Out[6]: 
  Categorical   Order  Numerical  Order_value
0           A   First         20       1
1           B  Second         22       2
2           C   First         21       1
3           A  Second         25       2

со столбцом 'Categorical', который вы можете использовать ord()

df['Categorical_value'] = df.Categorical.apply(ord) - 64

Out[7]: 
  Categorical   Order  Numerical  Order_value  Categorical__value
0           A   First         20       1         1
1           B  Second         22       2         2
2           C   First         21       1         3
3           A  Second         25       2         1
...