Как найти строки из условия groupby в исходном фрейме данных?

#python #pandas #dataframe #numpy

Вопрос:

У меня есть следующее условие, которое устраняет последнюю строку группы, если эта последняя строка не равна » нет » для результата столбца:

 m1 = df.groupby(['id'])['outcome'].tail(1) != 'no'   

Затем я использую это условие, чтобы удалить эти строки из фрейма данных:

 df = df.drop(m1[m1].index)   

Однако я не знаю, как сделать обратное и вместо того, чтобы удалять эти строки из исходного df, извлекать целые строки, удовлетворяющие условию m1. Есть какие-нибудь предложения?

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

1. df = df[m1] ?

2. сначала попробовал, но получил эту ошибку: pandas.core.indexing. Ошибка индексирования: Несогласованный логический ряд, предоставленный в качестве индексатора (индекс логического ряда и индексируемого объекта не совпадают).

3. df.loc[m1[m1].index,:] ?

Ответ №1:

Из комментариев:

 df.loc[m1[m1].index, :]  

будет работать.