Как мне заполнить NaN результатом другой подходящей строки? - PullRequest
0 голосов
/ 29 января 2019

У меня есть фрейм данных в формате

USER | ADDRESS | PURCHASE
1    | add 1   |  A
1    | NaN     |  B
2    | NaN     |  C
2    | add 2   |  D
3    | NaN     |  E

Для пользователя 1, я хочу заполнить АДРЕС в строке NaN с добавлением 1, и я хочу сделать то же самое для пользователя 2 для NaNстрока.Я не хочу группировать, и я хочу сохранить формат 4 строки.Просто хочу заполнить адрес NAN.Для пользователя 3, у которого нет совпадений, я хочу оставить его как NaN.

Я пытался сделать группового пользователя, но в итоге все заполняется и складывается воедино, что не то, что яхочу

без кода

Я просто хочу заполнить адреса для каждого пользователя соответственно

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я не уверен, что проблема с группировкой, но когда вы хотите заполнить пропущенные значения «по группам», вам нужно использовать groupby

df['ADDRESS'] = df.groupby('USER').ADDRESS.apply(lambda x: x.ffill().bfill())

   USER ADDRESS PURCHASE
0   1   add 1   A
1   1   add 1   B
2   2   add 2   C
3   2   add 2   D
4   3   NaN     E
0 голосов
/ 29 января 2019

df ['ADDRESS'] = np.where (df ['ADDRESS']. Isnull ()), df ['PURCHASE'], df ['ADDRESS'])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...