Pandas: создание значений в столбце на основе предыдущего значения в этом столбце - PullRequest
0 голосов
/ 12 июля 2020

Быстрый пример:

До:

In  Out    
1    5    
10   0    
2    3

После

In  Out  Value    
1    5   -4    
10   0    6    
2    3    5

Итак, формула здесь Value(rowx) = Value (rowx - 1) + In(rowx) - Out(rowx).

Я начал с добавлением столбца значений, где каждая ячейка равна 0. Затем я посмотрел shift (), но он использует значение из предыдущей строки с начала команды / функции. Таким образом, он всегда будет использовать 0 в качестве значения для Value. Есть ли способ сделать это без использования чего-то вроде iterrows () или a for l oop?

1 Ответ

4 голосов
/ 12 июля 2020

Кажется, в ваших расчетах вы могли сначала вычислить In - Out, а затем использовать cumsum()

import pandas as pd

data = {
    'In': [1,10,2],
    'Out': [5,0,3]
}

df = pd.DataFrame(data)

df['Value'] = df['In'] - df['Out']
df['Value'] = df['Value'].cumsum()

print(df)

или даже короче

df['Value'] = (df['In'] - df['Out']).cumsum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...