Отфильтруйте фрейм данных pandas, если строка существует

#python-3.x #pandas #dataframe

Вопрос:

У меня есть фрейм данных панд с названием вида в одном столбце и дополнительной информацией (тип РНК) в другом. Для данного названия вида, если в других строках фрейма данных нет информации о типе РНК, я хочу сохранить эту строку (например, 5-я строка ниже для Species2), но если в других строках есть информация о типе РНК, удалите строки, в которых есть NaN (например, 4-я строка ниже для Species1).

Образец Имя специализации RNA_type
A1 Разновидности1 РНК 1
A1 Разновидности1 РНК-2
A1 Разновидности1 РНК-3
A1 Разновидности1 Нан (удалить)
A1 Разновидности2 Нан (сохранить)

Возможно ли это сделать?

Ответ №1:

Попробуйте сделать это:

 df = df[~((df["Species_name"].duplicated(keep=False))amp;(df["RNA_type"].isnull()))]
 

Комментарии:

1. Это гораздо более элегантное решение.