如何在Python中循环并创建翻转总和?

问题描述 投票:0回答:1

查看该表,我希望在 Python 数据框中复制 Rollover 列。翻转着眼于:

当产量>最大产能时,就会产生展期。 接下来的日期将查看前一天,并添加生产增量 - 最大产能,或减去最大产能增量 - 产量。

Rollover永远不会低于0。

enter image description here

python pandas dataframe cumsum rolling-sum
1个回答
0
投票

可以识别第一次的索引

production > max_capacity
,将之前的所有条目设置为0,然后进行累加。

df['EXTRA'] = df['PRODUCTION'] - df['MAX_CAPACITY']
first_pos_idx = df['EXTRA'].gt(0).idxmax()
df.loc[:first_pos_idx-1, "EXTRA"] = 0
df['ROLLOVER'] = df['EXTRA'].cumsum()

结果:

         DATE  PRODUCTION  MAX_CAPACITY  EXTRA  ROLLOVER
0  2024-01-01          10            11      0         0
1  2024-01-02           8            11      0         0
2  2024-01-03           8            11      0         0
3  2024-01-04          15            11      4         4
4  2024-01-05          15            11      4         8
5  2024-01-06          12            11      1         9
6  2024-01-07          10            11     -1         8
7  2024-01-08           9            11     -2         6
8  2024-01-09          14            11      3         9
9  2024-01-10          16            11      5        14
10 2024-01-11           2            11     -9         5
© www.soinside.com 2019 - 2024. All rights reserved.