У меня есть фрейм данных df с тысячами строк, и вот пример:
Index A B C D E F
EX-A.1.A.B-1A 18 7 2 2 9 8
EX-A.1.A.B-1C 0 0 0 0 0 0
EX-A.1.A.B-4A 6 4 8 6 1 1
EX-A.1.A.B-4C 0 0 0 0 0 0
EX-A.1.A.B-4F 0 0 0 0 0 0
Еще у меня есть список my_list = ["EX-A.1.A.B-1A","EX-A.1.A.B-4A","EX-A.1.A.B-4F"]
и я хочу отфильтровать df на основе этого списка, поэтому я хочу сохранить строки, для которых значение индекса находится в списке my_list.
Я попробовал это, чтобы создать новый отфильтрованный df: Filter_df = df[df.index in my_list], и получил эту ошибку:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().
Есть идеи, как я могу это сделать? Спасибо






попробуй это:
Filter_df = df[df.index.isin(my_list)]
он не возвращает уникальный индекс. что можно сделать, чтобы вернуть то же количество строк, что и my_list?
Думаю, вам нужен drop_duplicates. Проверить здесь: pandas.pydata.org/pandas-docs/stable/reference/api/…
Используйте
Filter_df = df.loc[my_list]