Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为重复行生成序列号_Python_Pandas - Fatal编程技术网

Python 如何为重复行生成序列号

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

我有一个熊猫数据帧(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    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-谢谢你。谢谢你的解释。不过名字的选择很有趣。