如何将pandas中的数据框中的字符串更改为整数ID?

时间:2016-02-12 15:58:20

标签: python pandas dataframe

我有一个数据集,包括user IDitem ID(两个字符串)和类似的评分:

A12VH45Q3H5R5I B000NWJTKW 5.0
A3J8AQWNNI3WSN B000NWJTKW 4.0
A1XOBWIL4MILVM B000NWJTKW 1.0

我想将ID更改为整数,如:

1              1          5.0
2              1          4.0
3              1          1.0

我尝试了一种传统方式,创建一个大字典并用整数字标记每个字符串ID。但是花了很长时间。那么请你告诉我如何以更快的方式完成它?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以apply factorize

In [244]:
df[[0,1]] = df[[0,1]].apply(lambda x: pd.factorize(x)[0] + 1)
df

Out[244]:
   0  1  2
0  1  1  5
1  2  1  4
2  3  1  1

答案 1 :(得分:1)

您还可以将列编码为categorical,然后获取代码。

df['User_ID_code'] = df.User_ID.astype('category').cat.codes
>>> df
          User_ID     Item_ID  Rating  User_ID_code
0  A12VH45Q3H5R5I  B000NWJTKW       5             0
1  A3J8AQWNNI3WSN  B000NWJTKW       4             2
2  A1XOBWIL4MILVM  B000NWJTKW       1             1