В этой программе я использовал два временных списка для выполнения работы. "prevLinear" список используется для получения результатов Linear [i-1].Список "tempList" используется для хранения результатов столбца "new" для будущих вычислений.Выполните код, чтобы получить результат.Позвольте мне знать, если это помогает.Спасибо.
import pandas as pd
import numpy as np
Linear = [30,60,65,62,21,18,34,30,45,55,43,51,62]
Delta = [-3,1.4,-0.3,4.4,-2.5,-0.1,-3.1,-1.5,0.5,-1.4,2.8,4.7,2.7]
df = pd.DataFrame({
'Linear':Linear,
'Delta':Delta
})
prevLinear = [np.NaN if(i==0) else df.iloc[i-1,1] for i,value in enumerate(df['Linear'].values)]
df['prevLinear'] = prevLinear
tempList = []
new = []
for i,value in enumerate(df['Linear'].values):
if(value>50 and df.iloc[i,2]<50):
new.append(value)
tempList.append(value)
else:
if(i>0):
new.append(df.iloc[i,0]+tempList[i-1])
tempList.append(df.iloc[i,0]+tempList[i-1])
else:
new.append(np.NaN)
tempList.append(np.NaN)
new = np.round(new,1)
df['New'] = new
finalDF = df.iloc[:,[1,0,3]]
print(finalDF)