Добавить в корзинуПозвонить
Найти в Дзене
Властелин машин

Сложные запросы к таблице в Pandas

Запросы к большой таблице в Pandas традиционными способами могут привести к нехватке оперативной памяти. Чтобы этого избежать, существует специальный синтаксис, о котором пойдет речь в данной статье. Создадим датафрейм следующего вида: Продемонстрируем распространенный способ задания сложного запроса: В данном примере мы ищем лицо старше 25 лет с фамилией из списка и именем, начинающимся с "И". Если бы таблица весила несколько гигабайт на персональном компьютере могло не хватить памяти для обработки запроса, так как при такой индексации Pandas неявно создает несколько временных датафреймов: df['age']>25, df['surname'].isin(['Павленко', 'Ибрагимов']), df['name'].str.startswith('И'), а потом применяет к ним заданную логическую связку (в нашем случае "И"). Это имеет свои плюсы, в частности, ускоряет обработку на малых данных. Альтернативным способом индексации является использование метода query. Так наш запрос бы выглядел с его применением: Как можно заметить, внутри метода на столбцы м

Запросы к большой таблице в Pandas традиционными способами могут привести к нехватке оперативной памяти. Чтобы этого избежать, существует специальный синтаксис, о котором пойдет речь в данной статье.

Создадим датафрейм следующего вида:

Продемонстрируем распространенный способ задания сложного запроса:

-2

В данном примере мы ищем лицо старше 25 лет с фамилией из списка и именем, начинающимся с "И". Если бы таблица весила несколько гигабайт на персональном компьютере могло не хватить памяти для обработки запроса, так как при такой индексации Pandas неявно создает несколько временных датафреймов: df['age']>25, df['surname'].isin(['Павленко', 'Ибрагимов']), df['name'].str.startswith('И'), а потом применяет к ним заданную логическую связку (в нашем случае "И"). Это имеет свои плюсы, в частности, ускоряет обработку на малых данных.

Альтернативным способом индексации является использование метода query. Так наш запрос бы выглядел с его применением:

-3

Как можно заметить, внутри метода на столбцы можно ссылаться по их имени. Также предусмотрен способ обращения к переменным пространства имен Python через символ @:

-4

-5