Удаление дублирующихся значений не работает - ожидаемый бул? - PullRequest
0 голосов
/ 18 марта 2019

Мой набор данных выглядит примерно так:

enter image description here

Я пытаюсь 2 функции, чтобы очистить df - сначала удалить все равные комбинации в df - это означает, что если одинаковые идентификаторы комбинируются вместе, как строки 1 и 3, это удаляет это, но потом, когда я пытаюсь вторую функцию, которая затем удаляет любые дубликаты в каждом столбце - он работает без ошибок, но фактические дубликаты не удаляются?

def remove_dup_combos(df):
u = df.filter(like='id').values
m = pd.DataFrame(np.sort(u, axis=1)).duplicated()
df = df[~m]

return df



def remove_dups(df):
   df = df = df.drop_duplicates(['id1', 'id2'])

  return df

1 Ответ

2 голосов
/ 18 марта 2019

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

df = df.drop_duplicates(['id1', 'id2'])

Ваше решение другое - удалять дубликаты отдельно, сначала просматривая сначала, а затем по второму столбцу:

df = df.drop_duplicates(['id1'], inplace = False)
df = df.drop_duplicates(['id2'], inplace = False)

Параметр inplace = False по умолчанию установлен в DataFrame.drop_duplicates, поэтому его следует удалить:

df = df.drop_duplicates(['id1'])
df = df.drop_duplicates(['id2'])
...