在Python中创建SKU编号

2024-05-16 15:49:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据商品编号创建SKU编号,如下所示:

article_nr  SKUid
0   101      1
1   101      2
2   101      3
3   152      1
4   152      2
5   160      1
6   170      1

有人能帮我解决我的问题吗

我的想法是创造一些东西,比如:

for i in range(len(df01)): 
    while True: 
        if df01['article_nr'][i+1] == df01['article_nr'][i]:
            df01['SKUid'][i+1] = range(1, len(df01) + 1)
        else: 
            df01['SKUid'][i] = 1

有没有一种聪明有效的方法

提前谢谢大家


Tags: intrueforlenifarticlerangeelse
2条回答

您可以将.groupby().transform()一起使用:

df['SKUid'] = df.groupby('article_nr').transform(lambda x: range(1, len(x)+1))

print(df)

印刷品:

   article_nr  SKUid
0         101      1
1         101      2
2         101      3
3         152      1
4         152      2
5         160      1
6         170      1

您可以使用cumcount()进行此操作

df = pd.DataFrame({'article_nr':[101, 101, 101, 152, 152, 160, 170]})
df['SKU'] = df.groupby(['article_nr']).cumcount()+1

相关问题 更多 >