В pandas функция apply() обычно используется для применения функции к каждой строке DataFrame . Однако проблемы возникают, когда значение предыдущей строки также рассчитывается с использованием того же метода apply().
Рассмотрим следующий DataFrame:
Index_Date | A | B | C | D |
---|---|---|---|---|
31 января 2015 г. | 10 | 10 | NaN | 10 |
01.02.2015 | 2 | 3 | NaN | 22 |
2015-02-02 | 10 | 60 | NaN | 280 |
2015-02-03 | 10 | 100 | NaN | 250 |
Цель состоит в том, чтобы получить столбец C:
Чтобы добиться этого, мы сначала установили начальное значение 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_Date | A | B | C | D |
---|---|---|---|---|
2015-01-31 | 10 | 10 | 10 | 10 |
01.02.2015 | 2 | 3 | 23 | 22 |
2015-02-02 | 10 | 60 | 290 | 280 |
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3