«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вычислить столбец в DataFrame, используя значения предыдущей строки с помощью Apply()?

Как вычислить столбец в DataFrame, используя значения предыдущей строки с помощью Apply()?

Опубликовано 13 ноября 2024 г.
Просматривать:758

How to Calculate a Column in a DataFrame Using Previous Row Values with `apply()`?

Итерация по кадрам данных с учетом предыдущих значений с использованием apply()

В pandas функция apply() обычно используется для применения функции к каждой строке DataFrame . Однако проблемы возникают, когда значение предыдущей строки также рассчитывается с использованием того же метода apply().

Рассмотрим следующий DataFrame:

Index_Date ABCD
31 января 2015 г.1010NaN10
01.02.20152 3NaN22
2015-02-021060NaN280
2015-02-0310100 NaN250

Цель состоит в том, чтобы получить столбец C:

  • На 31 января 2015 г., установите для него значение D.
  • Для последующих строк умножьте значение предыдущей строки C на текущее значение строки A и добавьте его к текущему значению строки B.

Решение:

Чтобы добиться этого, мы сначала установили начальное значение C для 31 января 2015 г.:

df.loc[0, 'C'] = df.loc[0, 'D']

Затем мы перебираем оставшиеся строки и обновляем значения C с помощью желаемых вычислений:

for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A']   df.loc[i, 'B']

Окончательный DataFrame после этих операций:

Index_DateABC D
2015-01-3110101010
01.02.2015232322
2015-02-021060290280
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3