Python: как получить уникальные значения для 2 разных столбцов? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть датафрейм, подобный следующему

df
    idA  idB  yA  yB
0   3     2   0   1
1   0     1   0   0
2   0     4   0   1
3   0     2   0   1
4   0     3   0   0

Я хотел бы иметь уникальный y для каждого id. Так

df
    id   y
0    0   0
1    1   0
2    2   1
3    3   3
4    4   1

1 Ответ

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

Сначала создайте новый DataFrame путем сглаживания столбцов, выбранных с помощью iloc с numpy.ravel, затем sort_values и drop_duplicates по id столбец:

df2 = (pd.DataFrame({'id':df.iloc[:,:2].values.ravel(), 
                     'y': df.iloc[:,2:4].values.ravel()})
        .sort_values('id')
        .drop_duplicates(subset=['id'])
        .reset_index(drop=True))
print (df2)
   id  y
0   0  0
1   1  0
2   2  1
3   3  0
4   4  1

Деталь :

print (pd.DataFrame({'id':df.iloc[:,:2].values.ravel(), 
                    'y': df.iloc[:,2:4].values.ravel()}))

   id  y
0   3  0
1   2  1
2   0  0
3   1  0
4   0  0
5   4  1
6   0  0
7   2  1
8   0  0
9   3  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...