首页 > 解决方案 > 如何使用数据框在python中生成唯一的服务ID号

问题描述

大家好,我有一个有两个 cloumns 的数据,所以想为此生成唯一的 id 序列...... 这是数据:

    Year    Month   
0   2010    Jan     
1   2010    Feb     
2   2010    Mar     
3   2010    Mar     
4   2010    Mar

我想将该服务ID加入这两列,因为我已经编写了一个代码:

data['Sr_ID'] = data.groupby(['Month','Year']).ngroup()
data.head()

这给出了这个输出:

Year    Month   Sr_ID
0   2010    Jan     20
1   2010    Feb     15
2   2010    Mar     35
3   2010    Mar     35
4   2010    Mar     35 

但我不想要像这样的“Sr_ID”我想要像“Sr_0001...Sr_0002” 它应该是这个“Sr”的数字序列所以为此 我想要这样的输出:

    Year    Month   Sr_ID
 0  2010    Jan     Sr_0001
 1  2010    Feb     Sr_0002
 2  2010    Mar     Sr_0003
 3  2010    Mar     Sr_0004
 4  2010    Mar     Sr_0005

我想为不同的行生成不同的 id,因为我有 8 列,没有重复的行。

标签: pythonpandasdataframe

解决方案


np.arange+str.zfill

您可以使用范围,然后在左侧填充零:

df['Sr_ID'] = 'Sr_' + pd.Series(np.arange(1, len(df.index)+1)).astype(str).str.zfill(4)

print(df)

   Year Month    Sr_ID
0  2010   Jan  Sr_0001
1  2010   Feb  Sr_0002
2  2010   Mar  Sr_0003
3  2010   Mar  Sr_0004
4  2010   Mar  Sr_0005

推荐阅读