Как преобразовать каждое значение столбца данных с помощью целого числа - PullRequest
2 голосов
/ 19 февраля 2020

У меня есть следующий фрейм данных:

import pandas as pd
df = pd.DataFrame(dict(NoMatter=list(range(6)), Value=['a','b',7,7,'b','b']))
print(df)
   NoMatter Value
0         0     a
1         1     b
2         2     7
3         3     7
4         4     b
5         5     b

Я хотел бы изменить столбец Значение, так как он содержит другое целое число по старым значениям. Здесь я хотел бы, поэтому, 1 вместо каждого a, 2 вместо каждого b и 3 вместо каждого 7.

Ожидаемый результат:

   NoMatter  Value
0         0      1
1         1      2
2         2      3
3         3      3
4         4      2
5         5      2

Как, пожалуйста, я могу сделать?

1 Ответ

3 голосов
/ 19 февраля 2020

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

df['Value'] = pd.factorize(df['Value'])[0] + 1
print (df)
   NoMatter  Value
0         0      1
1         1      2
2         2      3
3         3      3
4         4      2
5         5      2
...