我有关于熊猫的资料
 product_id      description
 1               abc
 2               def
 3               fer
 4               tyu
 5               abc
 6               def我想要做的是给唯一的描述组分配增量数字。我想要的数据格式如下
 product_id      description    item_id
 1               abc            1 
 2               def            2
 3               fer            3
 4               tyu            4
 5               abc            1
 6               def            2我在熊猫里做的事情
 group_vars = ['description']
 data = data.merge(data.drop_duplicates(group_vars).reset_index(drop=True), on=group_vars)发布于 2020-01-09 14:25:37
您可能需要在这里使用series.factorize:
df['item id']=df['description'].factorize()[0]+1
print(df)   product_id description  item id
0           1         abc        1
1           2         def        2
2           3         fer        3
3           4         tyu        4
4           5         abc        1
5           6         def        2发布于 2020-01-09 14:39:25
factorize的答案很好,但您也可以使用map
创建将描述映射到项id的系列:
l = data.drop_duplicates('description').set_index('description').product_id这意味着:
print(l)
description
abc    1
def    2
fer    3
tyu    4现在通过将l映射到description来创建新列
data['group_id'] = data.description.map(l)   product_id description  group_id
0           1         abc         1
1           2         def         2
2           3         fer         3
3           4         tyu         4
4           5         abc         1
5           6         def         2https://stackoverflow.com/questions/59666040
复制相似问题