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

#pandas #python-3.8

Вопрос:

У меня есть следующие таблицы данных df :

 Col1    Col2    Val
T1      L2      1
T1      L2      1
T1      G3      3
G3      G3      4
G3      G3      6
G3      L2      7
L2      L2      8
L2      L2      9
 

Я хочу получить следующее:

 Col1    Col2    Val
T1      L2      1
T1      L2      1
T1      G3      3
G3      G3      4
G3      L2      7
L2      L2      8
 

Я хочу удалить повторяющиеся строки на основе столбца Val только тогда, когда Col1 они Col2 одинаковы.

Я пытаюсь использовать следующее df.drop_duplicates(subset='Val', keep='first') , но не смог добавить условие Col1 и Col2 .

Я не уверен, как подойти к вышесказанному.

Ответ №1:

Мы можем проверить строки Col1 == Col2 , в которых и где дублируются оба столбца:

 df[~(df["Col1"].eq(df["Col2"]) amp; df.duplicated(subset=["Col1", "Col2"]))]
 
   Col1 Col2  Val
0   T1   L2    1
1   T1   L2    1
2   T1   G3    3
3   G3   G3    4
5   G3   L2    7
6   L2   L2    8