[英]Pandas get numbers in column to increase based on previous rows
所以我有一些数据根据“代码”列中的数字对行进行分组。 但是,此数据有些损坏,有时不会将前一行的最大值作为新数字,而是将其重置为 1。
基本上数据是这样的:
Code Date
0 1 20200501
1 1 20200502
2 2 20200502
3 2 20200502
4 3 20200502
5 3 20200505
6 1 20200505
7 1 20200505
8 2 20200505
9 2 20200505
10 1 20200505
11 1 20200505
12 6 20200505
13 6 20200505
代码列中的编号在此处已损坏,应如下所示
Code Date
0 1 20200501
1 1 20200502
2 2 20200502
3 2 20200502
4 3 20200502
5 3 20200505
6 4 20200505
7 4 20200505
8 5 20200505
9 5 20200505
10 4 20200505
11 4 20200505
12 6 20200505
13 6 20200505
有人可以帮我找到修复此数据编号的方法吗?
编辑:编辑此以提供更多信息
因此,数据根据数字对行进行分组。 所以具有相同编号的所有东西都是一个组的一部分。 代码列中的编号应该 go 向上,从 1 开始。有时编号会重置回 1。所以我可能有 1-2-3-1,应该是 1-2-3-4,如果这有意义的话.
根据我的理解,您可以尝试使用 cummax 来确定现有值是否小于先前的最大值,并根据它添加现有值:
a = df['Code'].cummax()
s = a>df['Code']
df['New_Code'] = np.where(s,a+df['Code'],df['Code']
print(df)
Code Date New_Code
0 1 20200501 1
1 1 20200502 1
2 2 20200502 2
3 2 20200502 2
4 3 20200502 3
5 3 20200505 3
6 1 20200505 4
7 1 20200505 4
8 2 20200505 5
9 2 20200505 5
10 1 20200505 4
11 1 20200505 4
12 6 20200505 6
13 6 20200505 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.