Обновление ячейки в Pandas на основе предыдущей ячейки и другого столбца - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь вычислить значение ячейки в позиции L на основе других данных в DataFrame, которые у меня есть, и я не могу понять, какой будет номеклатура. Его даже сложно напечатать, но это довольно стандартная реализация в excel. Я показал пример ниже, я спрашиваю о Logi c Col2 в этом случае. Пожалуйста, простите за плохое форматирование.

| Col1 | Col2 |

| X | A |

| Y | Y + A |

| Z | Z + Y + A |

Ответы [ 2 ]

0 голосов
/ 13 мая 2020

В итоге я использовал форл oop, cumsum не сделал все, что мне нужно. Я отправлю фрагмент кода ниже, если он кому-нибудь понадобится.

for x in range(len(pDiff['HP Change'])) : 
    if x == 0:                            #special rules for first cell
        pDiff.iat[x, 2] = HPStateInit
        pDiff.iat[x, 2] = 4
    else:
        pDiff.iat[x, 2] = pDiff.iat[x, 1] + pDiff.iat[x-1,2]                   
                                          #Boundary Condition implementation
    pDiff['HP State'].loc[(pDiff['HP State'] > 7)] = 7                                                    
    pDiff['HP State'].loc[(pDiff['HP State'] < 0)] = 0                                                    
0 голосов
/ 06 мая 2020

Ответьте на ваш вопрос по заголовку.

Предположим, ваш df:

    col1
0   1
1   2
2   3
3   4
4   5

вы хотите добавить A в logi c, который вы дали.

A = 5
(df['col1']).cumsum().add(A) - df['col1'][0]

Вывод: <- это даст вам два значения столбца </p>

0     5
1     7
2    10
3    14
4    19
Name: col1, dtype: int64

df['col1']).cumsum()

даст:

1 (1)
3 (1+2)
6 (1+2+3)
10 (1+2+3+4)
15 (1+2+3+4+5)

добавление A = 5 даст:

6 (1+5)
8 (1+2+5)
11 (1+2+3+5)
15 (1+2+3+4+5)
20 (1+2+3+4+5+5)

вычитание 1-го значения даст вам:

5 (1+5-1)
7 (1+2+5-1)
10 (1+2+3+5-1)
14 (1+2+3+4+5-1)
19 (1+2+3+4+5+5-1)

эквивалент

5 (5) <-- A
7 (2+5) <-- Y + A
10 (2+3+5) <-- Z + Y + A
14 (2+3+4+5) 
19 (2+3+4+5+5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...