Если столбец является строковым, просто отфильтруйте значения по строке contains
. Предполагая, что ваш df group
. Поскольку вы хотите, чтобы все результаты отображались, вы можете сделать это не элегантное решение, которое создает 3 кадра данных:
сначала те, которые содержат CONTRATO:
df1 = group.loc[group['VALOR_NEW'].fillna('nada').str.contains('CONTRATO')].head(3)
Затем еще один, который не (обратите внимание на «~» в начале .loc, это означает противоположное:
df2 = group.loc[~group['VALOR_NEW'].fillna('nada').str.contains('CONTRATO')]
Наконец, вы согласны с обоими с CONTRATO:
df3 = pd.concat([df1,df2])
Обратите внимание, что он чувствителен к регистру, и я добавил fillna()
, потому что вы не можете искать, если он имеет значения nan.
Редактировать: добавили .head(3)
в конце, чтобы получить только первые 3 строки, как вы и просили.
edit2: отредактировано оригинальное решение
vlwflws