Как я могу определить для нескольких условий с помощью pandas.factorize? - PullRequest
0 голосов
/ 06 мая 2019

Я прочитал это , что говорит о pd.factorize для идентификации и создания уникального значения для идентификатора пользователя.

Однако в моем случае я хотел бы применить мультиусловие, которое OR условие для идентификации пользователя, и условие имеют порядок упорядочения.

Например: df:

cond_1(email)  cond_2(phone)  cond_3(other)
abc@yahoo.com  12345678       qwe
asd@yahoo.com  789456123      rty
abc@yahoo.com  905132312      zxc
dsds@yahoo.com 789456123       po
abc@yahoo.com  789456123      special

Ожидаемое:

cond_1(email)  cond_2(phone)  cond_3(other) unique_id
abc@yahoo.com  12345678       qwe            1
asd@yahoo.com  789456123      rty            2  
abc@yahoo.com  905132312      zxc            1
dsds@yahoo.com 789456123       po            2
abc@yahoo.com  789456123      special        1

1 Ответ

1 голос
/ 06 мая 2019

IIUC, вы можете сделать:

df['unique_id']=df.apply(lambda x: pd.factorize(x)[0]+1).min(axis=1)
print(df)

    cond_1(email)  cond_2(phone) cond_3(other)  unique_id
0   abc@yahoo.com       12345678           qwe          1
1   asd@yahoo.com      789456123           rty          2
2   abc@yahoo.com      905132312           zxc          1
3  dsds@yahoo.com      789456123            po          2
4   abc@yahoo.com      789456123       special          1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...