У меня есть столбцы типов объектов, которые имеют категориальные значения, например 15-16 лет, 17-23 года ..... Я преобразовал их в категорию, а затем в cat.codes.Однако значения кодирования начинаются с 0 для первой группы 0-4 года, и я хочу, чтобы кодирование начиналось с 1, то есть 0-4-> 1, 5-12-> и @@ -> NaN. Предлагаемое решение использования словарякартографирование все еще имеет проблемы.Далее следует mcve
import pandas as pd
data = ['0-4 Years', '5-12 Years','13-18 Years', '19-21 Years','22-25 Years','26-29 Years','30-35 Years',
'36-41 Years','42-45 Years','46-49 Years','50-55 Years', '56-63 Years']
df = pd.DataFrame(data,columns=['Age'],dtype=object)
df['Age']=df['Age'].astype('category')
cats = dict(enumerate(df['Age'].cat.categories, 2))
df['Age']=df['Age'].cat.codes.map(cats).astype('category')
df['Age']
, и здесь вывод, как вы можете видеть, если я изменю начало перечисления, отличное от 0, существует проблема со значениями как NaN.Во-вторых, столбец также не закодирован:
df['Age']
0 NaN
1 36-41 Years
2 NaN
3 NaN
4 0-4 Years
5 13-18 Years
6 19-21 Years
7 22-25 Years
8 26-29 Years
9 30-35 Years
10 42-45 Years
11 46-49 Years
Name: Age, dtype: category
Categories (9, object): [0-4 Years, 13-18 Years, 19-21 Years, 22-25 Years, ..., 30-35 Years, 36-41 Years, 42-45 Years, 46-49 Years]
Как это исправить.