функция сборки, которая принимает значения сверху строки в панде - PullRequest
0 голосов
/ 03 ноября 2018

у меня есть следующий фрейм данных:

enter image description here

Я хочу построить func для применения к столбцу 'c', который возьмет вычитание из столбцов 'd' и 'u' и добавит значение из строки выше в столбце 'c'. поэтому таблица будет выглядеть следующим образом:

enter image description here

например, в строке № 2 расчет будет: 44,37 - 0 + 149,77 = 194,14 в строке № 4 расчет будет 11,09 - 6,45 + 210,78 = 215,42 и так далее.. я пытался построить функцию, используя iloc с циклом while или shift, но ни один из них не работал, так как я получил ошибку:

(«у объекта« numpy.float64 »нет атрибута« iloc »,« произошло с индексом 0 »)

("объект 'numpy.float64' не имеет атрибута 'shift' ',' произошел с индексом 0 ')

любая идея, как сделать эту функцию, будет великолепна.

спасибо !!

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете применить прямое вычитание столбцов и использовать кумулятивную сумму для добавления значений

        d   u
0   0.000   149.75
1   0.000   44.37
2   0.000   16.64
3   6.450   11.09
4   77.345  5.54
5   64.520  16.40

df1['C'] = (df1['u'] - df1['d']).cumsum()

OUt:

    d   u   c
0   0.000   149.75  149.750
1   0.000   44.37   194.120
2   0.000   16.64   210.760
3   6.450   11.09   215.400
4   77.345  5.54    143.595
5   64.520  16.40   95.475
...