nandique преобразовывает панд на объекте groupby, работающем со значениями nan - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть следующие значения: df,

inv_id    cluster_id
793        2
           2
789        3
789        3
           4
           4

Мне нравится groupby cluster_id и проверка количества уникальных значений в каждой группе

df['same_inv_id'] = df.groupby('cluster_id')['inv_id'].transform('nunique') == 1  

, но яхотел бы установить same_inv_id = False, когда какой-то кластер содержит только пустое / пустое inv_id, и когда какой-то кластер содержит один или несколько пустых / пустых inv_id, поэтому результат будет выглядеть так:

inv_id    cluster_id    same_inv_id
793        2            False 
           2            False
789        3            True
789        3            True
           4            False
           4            False 

1 Ответ

0 голосов
/ 20 февраля 2019

IIUC получить условие тогда transform + all

s1=df.inv_id.ne('').groupby(df.cluster_id).transform('all')
s1
Out[432]: 
0    False
1    False
2     True
3     True
4    False
5    False
Name: inv_id, dtype: bool
s2=df.groupby('cluster_id')['inv_id'].transform('nunique') == 1 
#df['same_inv_id']=s1&s2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...