我有傻瓜。数据框:
Cnt Year JD Min_Temp
S 2000 1 277.139
S 2000 2 274.725
S 2001 1 270.945
S 2001 2 271.505
N 2000 1 257.709
N 2000 2 254.533
N 2000 3 258.472
N 2001 1 255.763
N 2001 2 265.714
N 2001 3 267.943
我想添加一个新列,其中给定'Cnt'的每个单独行都被赋予一个唯一的标识符(1,2,3 ...)。因此,结果应如下所示:
Cnt Year JD Min_Temp unq
S 2000 1 277.139 1
S 2000 2 274.725 2
S 2001 1 270.945 3
S 2001 2 271.505 4
N 2000 1 257.709 1
N 2000 2 254.533 2
N 2000 3 258.472 3
N 2001 1 255.763 4
N 2001 2 265.714 5
N 2001 3 267.943 6
这里,每一行对应于列“ Cnt”中的相同值作为唯一标识符。
当前,我所能做的就是添加一个具有递增值的新列:df ['unq'] = numpy.arange(1,len(df))
你可以使用groupby
与cumcount
>>> df["unq"] = df.groupby("Cnt").cumcount() + 1
>>> df
Cnt Year JD Min_Temp unq
0 S 2000 1 277.139 1
1 S 2000 2 274.725 2
2 S 2001 1 270.945 3
3 S 2001 2 271.505 4
4 N 2000 1 257.709 1
5 N 2000 2 254.533 2
6 N 2000 3 258.472 3
7 N 2001 1 255.763 4
8 N 2001 2 265.714 5
9 N 2001 3 267.943 6
请注意,因为群体是基于CNT列值,而不是在邻接,如果你有S的选自N下方的第二组,所述第一unq
中值该组将是5。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句