将python数据帧的文本/字符串转换为number/int

将python数据帧的文本/字符串转换为number/int,python,pandas,dataframe,type-conversion,Python,Pandas,Dataframe,Type Conversion,我可以知道如何将文本/字符串数据转换为Dataframe中某列的数字吗? 如果相同的文本/字符串再次出现,它们应返回相同的数字。 因为世界上有成千上万的水果,所以正在寻找一种转化的一般方法 示例: 果实数(预期结果) 1苹果1 2橙色2 3苹果1 4香蕉3 5个黑莓4 6鳄梨5 7葡萄6 8橙色2 9苹果1 10芒果7 . . . . . . . . . import pandas as pd fruitList=

我可以知道如何将文本/字符串数据转换为Dataframe中某列的数字吗? 如果相同的文本/字符串再次出现,它们应返回相同的数字。 因为世界上有成千上万的水果,所以正在寻找一种转化的一般方法 示例:
果实数(预期结果)
1苹果1
2橙色2
3苹果1
4香蕉3
5个黑莓4
6鳄梨5
7葡萄6
8橙色2
9苹果1
10芒果7
. . . . . . . . .

import pandas as pd 

fruitList={'name':[ "Apple","Orange","Apple","Banana","Blackberries","Avocado","Grapes","Orange","Apple","Mango"] }
df = pd.DataFrame(fruitList) 

# get distinct fruit names
unique=df.name.unique()
# generating a dictionary based on Id of unique fruit names using list comprehension
dict={ x:index+1 for index, x in enumerate(unique) }
# assigning new column 'Id' values from the dictionary using the map function 
df['Id']  = df["name"].map(dict)
print(df)
输出为:

        name      Id
0         Apple   1
1        Orange   2
2         Apple   1
3        Banana   3
4  Blackberries   4
5       Avocado   5
6        Grapes   6
7        Orange   2
8         Apple   1
9         Mango   7

嗨,Sirimiri-看到这个了吗。它应该能回答你的问题。使用
df['Number']=pd.factorize(df.Fruit)[0]+1