Присвоение значения столбцу на основе другого столбца - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть такой фрейм данных

CategoryNumber
1
2
3
1
3

Я хочу создать новый столбец «Категория», который присваивает значения на основе значения в столбце «Номер категории», например:

CategoryNumber  Category
1               First Category
2               Second Category
3               Third Category
1               First Category
3               Third Category

Как мне это сделать, используя python и pandas

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Использование map

import string
df.CategoryNumber.map(dict(zip(range(1,26),string.ascii_lowercase)))
Out[472]: 
0    a
1    b
2    c
3    a
4    c
Name: CategoryNumber, dtype: object
0 голосов
/ 28 сентября 2018

Вы можете использовать CatCodes прямо из панд.

  1. Сначала сделать столбец категорией
  2. Вызов cat.codes
  3. Назначить егона ваш новый столбец

df['Category2'] = df['CategoryNumber'].astype('category').cat.codes

   CategoryNumber  Category2
0               1          0
1               2          1
2               3          2
3               1          0
4               3          2

Если вам нужно сделать это A, B, C и т. д., посмотрите на map

df['Letters'] = df['Category2'].map(dict(zip(df['Category2'].tolist(),string.ascii_uppercase)))

   CategoryNumber  Category2 Letters
0               1          0       D
1               2          1       B
2               3          2       E
3               1          0       D
4               3          2       E
...