Захватить отдельные строки через n столбцов, но сохранить все столбцы в кадре данных - PullRequest
0 голосов
/ 18 октября 2019

Допустим, у меня есть фрейм данных:

a = [1,1,2,3,4]
b = [1,1,6,7,8]
c = [2,9,3,4,5]
ab  = pd.DataFrame(zip(a,b,c), columns = {'col1', 'col2', 'col3'})
ab
   col2  col3  col1
0     1     1     2
1     1     1     9
2     2     6     3
3     3     7     4
4     4     8     5

И, скажем, я хотел получить уникальные строки по n столбцам (в данном случае col2 и col3, но хотел бы общий пример n). но сохраните все столбцы в кадре данных и пропустите только дубликаты, как показано ниже.

   col2  col3  col1
0     1     1     2
2     2     6     3
3     3     7     4
4     4     8     5

Каков наилучший способ сделать это?

Этот вопрос похож на Подмножество с уникальными регистрами, основанное на нескольких столбцах , но только в Python

1 Ответ

1 голос
/ 18 октября 2019

Вы можете написать функцию для большей общности:

def drop_dupes(df, cols):
    return df[~df[cols].duplicated(keep='first')]

print(drop_dupes(df, ['col2', 'col3'])
   col2  col3  col1
0     1     1     2
2     2     6     3
3     3     7     4
4     4     8     5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...