Skip to main content
 首页 » 编程设计

python之如何将字符串映射到数据框python3的每一列中的数字ID

2025年05月04日19jpfss

我有一个数据框:

import pandas as pd 
d = {'user': ['bob','alice','bob'], 'item':  
['apple','coconut','pear']} 
df = pd.DataFrame(data=d) 
 
 
 
 
    user    item 
0   bob     apple  
1   alice   coconut  
2   bob     pear 

我的目标是将每一列中的每个字符串映射到一个递增的 ID(从 0 开始)

    user    item 
0   0       0 
1   1       1 
2   0       2 

例如,对于 user 列,[bob, alice] 将映射到 [0,1]。目标是为数据框节省内存。

另外,是否可以指定要映射的列?例如,只映射 user 列。谢谢

请您参考如下方法:

您可以结合使用 .groupby() 和 .ngroup() 将每列中的名称替换为唯一编号。

df['user'] = df.groupby(['user']).ngroup() 
df['item'] = df.groupby(['item']).ngroup()