#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