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'))