Python 如何为重复行生成序列号
我有一个熊猫数据帧(df),其中我必须为重复的行(即具有类似值的行)生成序列号。例如,下面是我的df:Python 如何为重复行生成序列号,python,pandas,Python,Pandas,我有一个熊猫数据帧(df),其中我必须为重复的行(即具有类似值的行)生成序列号。例如,下面是我的df: P_Id Time_Point Date B001 0 2015-07-22 B001 0 2015-07-22 B001 0 2015-07-22 B001 0 2015-07-22 B001 0 2015-07-22 B001
P_Id Time_Point Date
B001 0 2015-07-22
B001 0 2015-07-22
B001 0 2015-07-22
B001 0 2015-07-22
B001 0 2015-07-22
B001 3 2015-10-01
B001 3 2015-10-01
B001 3 2015-10-01
B001 3 2015-10-01
B001 3 2015-10-01
B001 12 2016-08-01
B001 12 2016-08-01
B001 12 2016-08-01
B001 12 2016-08-01
B001 12 2016-08-01
现在,如果您看到有相同id(001)的重复行,具有相似的时间点和相似的日期。我想有另一列,其中每个模式都有一个序列号。生成的df应如下所示:
P_Id Time_Point Date Seq
B001 0 2015-07-22 1
B001 0 2015-07-22 2
B001 0 2015-07-22 3
B001 0 2015-07-22 4
B001 0 2015-07-22 5
B001 3 2015-10-01 1
B001 3 2015-10-01 2
B001 3 2015-10-01 3
B001 3 2015-10-01 4
B001 12 2016-08-01 1
B001 12 2016-08-01 2
B001 12 2016-08-01 3
与和标量一起使用1
:
df['Seq'] = df.groupby(['P_Id','Time_Point','Date']).cumcount().add(1)
print (df)
P_Id Time_Point Date Seq
0 B001 0 2015-07-22 1
1 B001 0 2015-07-22 2
2 B001 0 2015-07-22 3
3 B001 0 2015-07-22 4
4 B001 0 2015-07-22 5
5 B001 3 2015-10-01 1
6 B001 3 2015-10-01 2
7 B001 3 2015-10-01 3
8 B001 3 2015-10-01 4
9 B001 3 2015-10-01 5
10 B001 12 2016-08-01 1
11 B001 12 2016-08-01 2
12 B001 12 2016-08-01 3
13 B001 12 2016-08-01 4
14 B001 12 2016-08-01 5
cumcount
代表什么?@Szabolcs-它代表计数组,选中@Szabolcs它代表“累计计数”。它是一系列函数的一部分,包括累积和、累积积等。@MatthiasFripp-谢谢你。谢谢你的解释。不过名字的选择很有趣。