pandas удаляет строки, которые имеют аналогичное значение в другом столбце

#python

#python

Вопрос:

У меня есть фрейм данных df = pd.DataFrame({'col1': ["a","b","c","d","e"], 'col2': [1,3,3,2,6]}) , который выглядит как

Ввод:

  col1 col2
0   a   1
1   b   3
2   c   3
3   d   2
4   e   6
  

Я хотел бы удалить строки из «col1», которые имеют общее значение в «col2». Ожидаемый результат будет выглядеть примерно так…

Вывод:

  col1 col2
0   a   1
3   d   2
4   e   6
  

Каким будет процесс выполнения этого?

Ответ №1:

использование этого короткого кода должно сработать

 df.drop_duplicates(subset=['col2'], keep=False)
  

Объяснение

мы используем drop_duplicates для (ovbiously) удаления дубликатов, и мы устанавливаем столбцы, из которых мы хотим удалить, на col2 , как вы просили, чтобы удалить все вхождения (и не сохранять, например, первое вхождение каждого дубликата), которые мы используем keep=False .

Ответ №2:

Это поможет

 
from collections import Counter

df = pd.DataFrame({'col1': ["a","b","c","d","e"], 'col2': [1,3,3,2,6]})

c = Counter(df['col2'])
ls = [k for k,v in c.items() if v==1]

_fltr = df['col2'].isin(ls)

df.loc[_fltr,:]