заполнить нулевые значения условным оператором с помощью .shift () - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу заполнить нулевые значения столбца на основе значений в другом столбце.

A   B
1   21
0   21
0   21
1   25
1   28
0   28

Мое значение B увеличивается, только если значение A равно 1.

Итак, у меня есть несколько нулевых значений в столбце A, например

A     B
1     21
0     21
NAN   21
1     25
1     28
0     28

Я хочу заполнить это нулевое значение 0, потому что соответствующее значение B. не увеличилось.

df['A'] = np.where((df['A'].isnull()) & (df['B'] ==df['B'].shift()),0,df['A'])

Это не дает правильных результатов. Где я иду не так

1 Ответ

0 голосов
/ 19 апреля 2019

loc может работать лучше здесь.

df.loc[(df['A'] == np.nan) & (df['B'] == df['B'].shift(-1)),'A'] = 0

# I havent checked if the shift needs to be -1 or 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...