Панда группового переключения и считать в то же время - PullRequest
0 голосов
/ 28 ноября 2018

В основном я пытаюсь взять предыдущий ряд для комбинации ['торговец', 'государство', 'город'].Если у меня есть несколько значений в этой комбинации, я получу значение Shifted этой комбинации.

df['ShiftBY_D_S_C']= df.groupby(['dealer','State','city'])['dealer'].shift(1)

Я снова беру этот столбец ShiftBY_D_S_C и пытаюсь получить счет для комбинации ['ShiftBY_D_S_C', 'State', 'city'].

df['NewColumn'] = (df.groupby(['ShiftBY_D_S_C','State','city'])['ShiftBY_D_S_C'].transform("count"))+1

Таблица нижепоказывает, что я пытаюсь сделать, и это также хорошо работает.Но когда все строки в столбце ShiftBY_D_S_C равны нулю, это не работает, так как имеет все нулевые значения.Любые предложения?

enter image description here

Я пытаюсь увидеть значения NewColumn, как показано ниже, когда все значения в ShiftBY_D_S_C равны NaN.

enter image description here

1 Ответ

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

Вы можете просто обработать особый случай, который вы описываете, с помощью условия if / else:

if df['ShiftBY_D_S_C'].isna().all():
    df['NewColumn'] = 1
else:
    df['NewColumn'] = df.groupby(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...