如何使用dataframe在python中生成唯一的服务id号
大家好,我有一个有两个克隆的数据,所以我想为它生成唯一的id序列。。。 这是数据:如何使用dataframe在python中生成唯一的服务id号,python,pandas,dataframe,Python,Pandas,Dataframe,大家好,我有一个有两个克隆的数据,所以我想为它生成唯一的id序列。。。 这是数据: Year Month 0 2010 Jan 1 2010 Feb 2 2010 Mar 3 2010 Mar 4 2010 Mar data['Sr_ID'] = data.groupby(['Month','Year']).ngroup() data.head() Year Month S
Year Month
0 2010 Jan
1 2010 Feb
2 2010 Mar
3 2010 Mar
4 2010 Mar
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
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加入这两列,因为我已经编写了一个代码:
Year Month
0 2010 Jan
1 2010 Feb
2 2010 Mar
3 2010 Mar
4 2010 Mar
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
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
这将给出此输出:
Year Month
0 2010 Jan
1 2010 Feb
2 2010 Mar
3 2010 Mar
4 2010 Mar
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
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
但我不想要这样的“Sr_ID”,我想要像“Sr_0001…Sr_0002”
它应该在这个“Sr”的数字序列中,所以对于这个
我想要这样的输出:
Year Month
0 2010 Jan
1 2010 Feb
2 2010 Mar
3 2010 Mar
4 2010 Mar
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
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列,没有重复的行。+
您可以使用范围,然后在左侧填充零:
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
为什么您想要的输出中的2010年Mar映射到3个不同的Sr_ID号?@jpp先生,我想为不同的行生成不同的ID,因为我有8列,而不是这一列,这与我方生成ID号的方式不同