Игнорировать NaT при агрегировании для создания множества в пандах - PullRequest
1 голос
/ 30 сентября 2019

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

df = pd.DataFrame({'ID' : [1,1,1], 
               'val1': ['2019-01-01 00:00:00', np.datetime64('NaT'), '2019-01-02 00:00:00'],
               'val2': [np.datetime64('NaT'), '2019-01-03 00:00:00', '2019-01-04 00:00:00']})

    ID  val1        val2
0   1   2019-01-01  NaT
1   1   NaT         2019-01-03
2   1   2019-01-02  2019-01-04

Я создаю агрегаты, конвертируем столбец val, чтобы установить. Однако я хочу игнорировать NaT значение

В настоящее время я получаю это

df.groupby('ID')[['val1', 'val2']].agg({'set': lambda x: set(x) })
ID  set
1   {NaT, 2019-01-02 00:00:00, 2019-01-01 00:00:00} {NaT, 2019-01-03 00:00:00, 2019-01-04 00:00:00}

как я могу игнорировать NaT

1 Ответ

1 голос
/ 30 сентября 2019

Потому что np.nan != np.nan, так же np.NaT != np.NaT. Тогда возможна фильтрация в наборе:

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