Срезы, query()

print(df.query('col1 == "smth"'))

df.query('col1 == True or col2 == True')

df.query('col1 == "smth" and (col2 == True or col3 == False)')

Порядок операций:
not, and, or.

Срез с условием и математической операцией:
df.query('col1 > 3 * col2 ')

Срез с методом:
df.query('col1 < col2.mean()')

Срезы с внешними параметрами не из датафрейма:
df.query('col1 <= @existing_name')

Срезы для избавления от выбросов:
data.query('col1 < 10')

В срезе проверить условие, что значение столбца 'col1' равно одному из элементов списка (1, 3, 7):
df.query('col1 in (1, 3, 7)')
df.query('col1 == (1, 3, 7)')

В срезе обратиться ко внешней переменной:
df.query('col1 < @variable_name')

Запрос, встречается ли значение столбца col1 во внешнем списке variable_name:
df.query('col1 in @variable_name'))

Для Series проверяет значения Series, но не их индексы
(см выше)

Для внешнего Series или Dataframe, чтобы проверить вхождение значений из столбца col1 именно в индекс:
df.query('col1 in @series_or_df_name.index')

Сравнение столбцов разных датафреймов.
Чтобы проверить, есть ли значения из столбца col1 df в столбце col_out внешнего датафрейма df_out :
df.query('col1 in @df_out.col_out'))

Для словаря проверяет, равны ли значения столбца 'col1' ключам словаря
df.query('col1 in @dict_name'))

Язык и производные:

Назначение команды: