У меня есть фрейм данных pandas, и я пытаюсь изменить значения в данном столбце, которые представлены целыми числами в целые числа. Например:Sklearn меняет строковый класс метки на int
df = index fruit quantity price
0 apple 5 0.99
1 apple 2 0.99
2 orange 4 0.89
4 banana 1 1.64
...
10023 kiwi 10 0.92
Я хотел бы, чтобы посмотреть на:
df = index fruit quantity price
0 1 5 0.99
1 1 2 0.99
2 2 4 0.89
4 3 1 1.64
...
10023 5 10 0.92
Я могу сделать это с помощью
df["fruit"] = df["fruit"].map({"apple": 1, "orange": 2,...})
, который работает, если у меня есть небольшой список, чтобы изменить, но я Я смотрю на столбе с более чем 500 различными ярлыками. Есть ли способ изменить это от string
до int
?
categoricals по определению факторизовать; нет причин делать это напрямую – Jeff
@Jeff - Я не понимаю - вы думаете, что вывод 'factorize' является' категорией' по дизайну? 'print (type (pd.factorize (pd.Series (['apple', 'apple', 'orange', 'banana'])) [0]))' return 'numpy array' и [docs] (http: //pandas.pydata.org/pandas-docs/stable/reshaping.html#factorizing-values) (последнее примечание) описывают, как отличать категориальным - кажется, после 'factorize'. Или что-то не хватает? Благодарю. – jezrael
вам вообще не нужно факторировать, просто выберите категорию и используйте коды; это факторизация: прямое использование факторизации не требуется – Jeff