Как сгруппировать записи по нескольким (т.е. всем доступным) атрибутам со значениями NaN? - PullRequest
2 голосов
/ 01 апреля 2019

Я должен выяснить, какие записи имеют одинаковые действительные функции, а именно, если данные выглядят так:

Idx    F1    F2    F3

1     NaN     A    23
2     0.2     B   NaN
3     NaN     C    12
4     NaN   NaN    88
5     0.7     D    41
6     0.1     E   NaN

группировка должна выглядеть так:

Group 1: [1, 3]
Group 2: [2, 6]
Group 3: [4]
Group 4: [5]

Проблема в том, что существует более 2000 атрибутов, поэтому я не могу перечислить их вручную, чтобы явно сгруппировать объекты.

Может кто-нибудь предложить мне способ сделать это с помощью панд?

1 Ответ

2 голосов
/ 01 апреля 2019

Вы можете попробовать:

(df.groupby((df.isna().dot(df.columns)).
     replace('','no_nan')).apply(lambda x: x.index.tolist()))

F1        [1, 3]
F1F2         [4]
F3        [2, 6]
no_nan       [5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...