Применение вычислений со значениями предыдущих строк в Pandas
В Pandas проблема включения значений предыдущих строк в вычисления во время манипулирования данными не является проблемой необычный. Один из таких сценариев предполагает необходимость использования значения предыдущей строки при вычислении нового столбца с помощью функции apply().
Рассмотрим сценарий, в котором у нас есть DataFrame со следующей структурой:
Index_Date A B C D ================================ 2015-01-31 10 10 Nan 10 2015-02-01 2 3 Nan 22 2015-02-02 10 60 Nan 280 2015-02-03 10 100 Nan 250
Наша цель — заполнить столбец «C» расчетными значениями. Для первой строки «C» является производным от «D». Для последующих строк значение «C» рассчитывается путем умножения значения «C» предыдущей строки на значение «A» для текущей строки и добавления значения «B».
Подход
Для достижения этого мы используем комбинацию инициализации и итерации внутри функции apply().
df.loc[0, 'C'] = df.loc[0, 'D']
for i in range(1, len(df)):
df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']
Результат
Этот подход эффективно заполнит столбец «C» желаемыми расчетными значениями:
Index_Date A B C D ================================ 2015-01-31 10 10 10 10 2015-02-01 2 3 23 22 2015-02-02 10 60 290 280 2015-02-03 10 100 3000 250
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3