как вернуть значения в DataFrame, индексы которых не равны индексу из списка?

Код:

uniq = df.drop_duplicates(subset='norm').index.values
df.iloc[~uniq, :]

Нужно, чтобы из df вернулись те значения, индексы которых не находятся в списке, но этот код возвращает мне таблицу уникальных значений, отсортированную в убывающем порядке по индексу.


Ответы (1 шт):

Автор решения: MaxU

Пример:

In [104]: df
Out[104]:
   norm
0     2
1     1
2     1
3     2
4     3

In [105]: uniq = df.drop_duplicates(subset='norm').index

In [109]: res = df.loc[~df.index.isin(uniq)]

In [110]: res
Out[110]:
   norm
2     1
3     2

Но можно это сделать проще, воспользовавшись DataFrame.duplicated():

In [112]: df.loc[df.duplicated(subset="norm")]
Out[112]:
   norm
2     1
3     2
→ Ссылка