Вместо использования функции range()
безопаснее просто перебирать индекс, ie.:
for e in db.index:
g.append((db.iloc[e+1, 1] - db.iloc[e, 1]) * 100.0 / db.iloc[e,1])
Также вы можете оптимизировать этот код дальше и избавиться от for l oop вместе, ie.:
db.iloc[:,1].diff().multiply(100).div(db.iloc[:,1].shift())
Этот код вернет pd.Series
, который вы можете назначить своему g
:
g = db.iloc[:,1].diff().multiply(100).div(db.iloc[:,1].shift())
или добавить к нему, если он уже содержит некоторые данные:
g = pd.concat([g, db.iloc[:,1].diff().multiply(100).div(db.iloc[:,1].shift())
])
Если вы последуете моему предложению, вы также можете сразу использовать имя столбца 1, а не использовать слайсер iloc
для большей ясности.