#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, :]
будет работать.