Я пытаюсь удалить дубликаты на основе двух условий, но я не смог.
Мой код такой:
df = pd.DataFrame({'State': ['NY', 'NY', 'FL', 'AL', 'NY', 'TX', 'FL', 'AL'],
'Quantity': [120, 162, 120, 120, 120, 72, 120, 81],
'Duplicate': ['TRUE', 'FALSE', 'TRUE', 'FALSE', 'TRUE', 'FALSE', 'TRUE', 'FALSE'],
'YN': ['FALSE', 'FALSE', 'TRUE', 'TRUE', 'TRUE', 'FALSE', 'TRUE', 'FALSE'],},
index=['One', 'Two', 'Three', 'One', 'Two', 'Three', 'One', 'Two'])
print("\n -------- Duplicate Rows ----------- \n")
print(df)
df1 = df.reset_index().drop_duplicates(subset=['Duplicate','YN'],
keep='first').set_index('index')
print("\n ------- Unique Rows ------------ \n")
print(df1)
И результат:
index
One NY 120 TRUE FALSE
Two NY 162 FALSE FALSE
Three FL 120 TRUE TRUE
One AL 120 FALSE TRUE
Однако я хочу удалить столбцы, в которых Duplicate и YN имеют значение TRUE.
Я пробовал несколько вещей, но при попытке запустить это:
df1 = df.reset_index().drop_duplicates(subset=['Duplicate' == 'TRUE' & 'YN' == 'TRUE],
keep='first').set_index('index')
Я получаю следующая ошибка:
TypeError: unsupported operand type(s) for &: 'str' and 'str'
Я не могу найти, если моя ошибка, потому что столбцы логические, и мне нужно будет добавить третий столбец позже, где я должен был бы удалить, если три являются ИСТИНА
Любая помощь очень ценится.