如何解决在Python中创建SKU编号
我想根据商品编号创建一个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
有一种聪明而有效的方法吗?
谢谢大家!
解决方法
您可以将.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,152,160,170]})
df['SKU'] = df.groupby(['article_nr']).cumcount()+1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。