繁体   English   中英

Pandas 获取列中的数字以根据前几行增加

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM