Я пытаюсь получить доступ к предыдущей (или далее назад) строке, чтобы использовать ее в качестве значения в новом столбце.Перепробовал несколько подходов с enumerate, iterrows и iloc, но в итоге столкнулся с той же проблемой, они используют последнее значение.Используется следующий код:
df = pd.DataFrame({'values':(50.033,50.025,49.979,49.954,49.936,49.935,49.93)})
df['a']=df.diff()
def my_func_disch(x):
if abs(x) >= 0 and abs(x) <= 0.009:
for index,row in df.iterrows():
eff_disch = row['values']
else:
eff_disch = 'xxx'
return eff_disch
df["b"] = df.a.apply(my_func_disch)
, который производит:
values a b
0 50.033 NaN xxx
1 50.025 -0.008 49.93
2 49.979 -0.046 xxx
3 49.954 -0.025 xxx
4 49.936 -0.019 xxx
5 49.935 0.000 49.93
6 49.930 -0.005 49.93
И я хотел бы, чтобы он произвел:
values a b
0 50.033 NaN xxx
1 50.025 -0.008 50.033
2 49.979 -0.046 xxx
3 49.954 -0.025 xxx
4 49.936 -0.019 xxx
5 49.935 0.000 49.936
6 49.930 -0.005 49.935