У меня есть пандас DataFrame, скажем df
, и я пытаюсь отбросить определенные строки по индексу.В частности:
myindex = df[df.column2 != myvalue].index
df.drop(myindex, inplace = True)
Кажется, что это прекрасно работает для большинства DataFrames, но странные вещи, кажется, происходят с одним DataFrame, где я получаю неуникальный индекс myindex
(я не совсем уверен, почему, поскольку DataFrameне имеет повторяющихся строк).Чтобы быть более точным, гораздо больше значений отбрасывается, чем в индексе (в крайнем случае я фактически отбрасываю все строки, даже если есть несколько сотен строк, в которых column2
имеет myvalue
).Извлечение только уникальных значений (myindex.unique()
и удаление строк с использованием уникального индекса тоже не помогает. В то же время,
df = df[df.column2 != myvalue]
работает так, как мне бы хотелось. Я бы предпочелоднако используйте падение на месте, но что более важно, я хотел бы понять, почему результаты не совпадают с прямым назначением и методом удаления с использованием индекса.
К сожалению, я не могу предоставить данные, поскольку они не могут бытьопубликовано, и так как я не уверен, что именно не так, я не могу имитировать их тоже. Однако я подозреваю, что это, возможно, связано с тем, что myindex
является неуникальным (что также смущает меня, так как в df
нет повторяющихся строк, новполне возможно, что я неправильно понимаю способ создания индекса).