如何用Pandas生成字符串与数字组合的自定义唯一标识列
问题解决:为Pandas DataFrame生成带前缀的连续唯一ID
问题描述
现有如下结构的Pandas DataFrame:
product_nmae Productashd productddsf productkid
期望生成包含unique_id列的DataFrame,格式为sku-数字,数字从1开始连续递增:
product_nmae unique_id Productashd sku-1 productddsf sku-2 productkid sku-3
尝试执行df['unique_id'] = df.index + 1后得到错误结果(序号不连续):
product_nmae unique_id Productashd 0 productddsf 1 productkid 3
解决方案
问题出在原DataFrame的索引不是连续的整数(比如第三行的索引是3而非2),直接用索引计算会导致序号断裂。可以通过以下两种方式生成连续的序号并拼接前缀:
方法一:使用range生成连续序列
直接基于DataFrame的行数生成从1开始的连续数字,再和前缀拼接:
df['unique_id'] = [f'sku-{i}' for i in range(1, len(df)+1)]
方法二:重置索引后计算
先重置索引得到连续的0起始序号,再加1并拼接前缀:
df = df.reset_index(drop=True) df['unique_id'] = 'sku-' + (df.index + 1).astype(str)
两种方法都能生成从sku-1开始的连续唯一ID,不受原索引的影响。
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

