如何使用数据框在python中生成唯一的服务id号

时间:2018-11-28 09:38:10

标签: python pandas dataframe

大家好,我有一个数据,其中包含两个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列,没有重复的行。

1 个答案:

答案 0 :(得分:4)

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