如何限制数据帧中的总和和所有值的负数

2024-09-29 03:37:38 发布

您现在位置:Python中文网/ 问答频道 /正文

当我用大量数据的dataframe做cumsum时,有一些错误和bug,所以我想对cumsum数据进行限制,并对所有数据进行负限制值。就像下面一样

A    B    IntA    IntB
1    2       1       2
2    4       3       6
3    6       6      12
4    8      10      20
5    2      15      22
6    4      21      26
7    8      28      34

我想弄清楚IntA或IntB的最小值是否超过10 在求和值之前减去10,继续做如下求和

A    B    IntA    IntB
1    2       1       2
2    4       3       6
3    6       6      12
4    8       0      10
5    2       5      12
6    4       1       6
7    8       8      14

我能做些什么吗?你知道吗


Tags: 数据dataframe错误bugcumsumintaintb
1条回答
网友
1楼 · 发布于 2024-09-29 03:37:38

好吧,我终于明白了。使用.apply会很容易,但是如果没有它,它的伸缩性会更好,而且会更有趣:-)

df= pd.DataFrame({
    'A': [1, 2, 3, 4, 5, 6, 7],
    'B': [2, 4, 6, 8, 2, 4, 8]
})

cumsumA=  df['A'].cumsum()
cumsumB=  df['B'].cumsum()
tensA=    (cumsumA // 10)*10
tensB=    (cumsumB // 10)*10
tens=     tensA.where(tensA<tensB, tensB)

df['intA']= cumsumA - tens
df['intB']= cumsumB - tens
df

这将输出:

   A  B  intA  intB
0  1  2     1     2
1  2  4     3     6
2  3  6     6    12
3  4  8     0    10
4  5  2     5    12
5  6  4     1     6
6  7  8     8    14

我只是没有马上意识到,你的min规则对于修正值意味着什么,但是有了这些知识,它看起来非常简单。。。你知道吗

相关问题 更多 >