复制时将列转换为数值

Transforming columns into numerical values when copying

我有一个通过

读入的数据框

data = pd.read_csv("animals_clean.csv")

它包含一个包含超过 67000 个值的列,并且在整个过程中重复了 80 多个相同的值。
如:

   Ailurus
   Harpia
   Alligator
   Branta
   Araucaria
   Branta
   Alligator

我想在它旁边创建一个列,它接受每个单独的类型并为其分配一个数值。 比如

1
2
3
4
5
4
3

目前我唯一的选择是通过

手动完成
data['animal'].replace(['harpia'], ['2'],inplace=True)

但是这不可行,因为这需要时间

你可以试试

df['num_A']=df.A.astype('category').cat.codes

df['num_A']=df.A.factorize()[0]

df.groupby('A').ngroup()