Как присвоить значение уникальным значениям в Python - PullRequest
1 голос
/ 05 августа 2020

df:

Id     Products
100     Shoes
101     Shoes
102     Shoes
103     Chair
104     Chair
105     Chair
106     Chair
107     Chair
108     Clothes
109     Clothes
110     Clothes

df_Output:

Id     Products Value
100     Shoes    1
101     Shoes    1
102     Shoes    1
103     Chair    2
104     Chair    2
105     Chair    2
106     Chair    2
107     Chair    2
108     Clothes  3
109     Clothes  3
110     Clothes  3

Мне нужно создать новый столбец на основе столбца «Продукты», который присваивает каждое уникальное значение для каждого отдельного продукта.

Ответы [ 2 ]

3 голосов
/ 05 августа 2020

Используйте factorize

df['Value']=df.Products.factorize()[0]+1

Выход

df
     Id Products  Value
0   100    Shoes      1
1   101    Shoes      1
2   102    Shoes      1
3   103    Chair      2
4   104    Chair      2
5   105    Chair      2
6   106    Chair      2
7   107    Chair      2
8   108  Clothes      3
9   109  Clothes      3
10  110  Clothes      3
0 голосов
/ 05 августа 2020

Другой метод - использование dtypes pd.Categorical с аксессуаром категории .cat:

df['value'] = df['Products'].astype('category').cat.codes + 1
print(df)

Вывод:

     Id Products  value
0   100    Shoes      3
1   101    Shoes      3
2   102    Shoes      3
3   103    Chair      1
4   104    Chair      1
5   105    Chair      1
6   106    Chair      1
7   107    Chair      1
8   108  Clothes      2
9   109  Clothes      2
10  110  Clothes      2
...