Вывод нескольких столбцов в pandas

Как вывести несколько столбцов в pandas

Как вывести несколько столбцов в pandas

Работа с большими наборами данных в pandas часто требует выборки конкретных столбцов для анализа. Прямой доступ к отдельным колонкам позволяет снизить нагрузку на память и ускорить выполнение операций. Для этого достаточно указать список нужных имен столбцов в квадратных скобках или использовать методы loc и iloc.

При работе с DataFrame из нескольких сотен столбцов рекомендуется заранее определить, какие данные нужны для анализа. Например, при обработке данных о продажах полезно извлекать только даты, суммы заказов и идентификаторы клиентов. Это позволяет быстрее строить агрегированные таблицы и графики.

Сохранение выбранных столбцов в новый DataFrame позволяет создавать отдельные таблицы для дальнейшего экспорта или передачи другим аналитическим инструментам. Это особенно важно при подготовке данных для отчётов, визуализаций и машинного обучения, где требуется работать только с релевантной информацией.

Выбор столбцов по имени из DataFrame

Выбор столбцов по имени из DataFrame

Для извлечения отдельных колонок из DataFrame достаточно указать их имена в квадратных скобках. Например, df[[‘column1’, ‘column2’]] возвращает только указанные столбцы, сохраняя порядок, заданный в списке. Это удобно, если нужно подготовить подтаблицу для анализа или визуализации.

Имена столбцов чувствительны к регистру, поэтому ‘Column1’ и ‘column1’ будут рассматриваться как разные колонки. Для удобства работы с большими таблицами можно хранить список нужных столбцов в отдельной переменной и использовать его при выборке: columns_to_select = [‘column1’, ‘column2’], затем df[columns_to_select].

При использовании этого метода DataFrame сохраняет оригинальные индексы строк. Это позволяет сразу выполнять группировки, фильтрацию и агрегирование данных без дополнительной перестройки таблицы. Также можно комбинировать выборку столбцов с методами pandas, например df[[‘column1’, ‘column2’]].sum(), чтобы быстро получить сумму по выбранным колонкам.

Если имя столбца отсутствует в DataFrame, pandas выдаёт ошибку KeyError. Рекомендуется проверять наличие колонок через df.columns или использовать пересечение списков: list(set(columns_to_select) & set(df.columns)), чтобы избежать прерывания скрипта.

Фильтрация столбцов с помощью списка

Фильтрация столбцов с помощью списка

Для выбора нескольких столбцов из DataFrame можно использовать список с именами колонок. Например, columns_to_keep = [‘date’, ‘sales’, ‘customer_id’] и затем df[columns_to_keep] вернёт только эти столбцы, сохраняя исходный порядок.

Этот подход полезен, когда необходимо динамически формировать подтаблицы. Например, при обработке данных разных магазинов список столбцов можно формировать программно: columns_to_keep = [col for col in df.columns if col.startswith(‘store_’)], что позволяет быстро фильтровать только нужные показатели.

Для защиты от ошибок лучше проверять наличие колонок перед выборкой. Пересечение списков valid_columns = list(set(columns_to_keep) & set(df.columns)) позволяет исключить отсутствующие имена и избежать KeyError. Это особенно актуально при работе с таблицами, структура которых может меняться.

После фильтрации DataFrame сохраняет оригинальные индексы строк, что упрощает последующие операции, например группировку или объединение с другими таблицами. Такой метод совместим с методами агрегации и визуализации pandas без дополнительных преобразований.

Метод loc позволяет одновременно выбирать строки и столбцы по именам. Для извлечения нескольких колонок используется синтаксис df.loc[:, [‘column1’, ‘column2’]], где двоеточие обозначает выбор всех строк, а список задаёт нужные столбцы.

Этот метод особенно полезен, когда необходимо сочетать фильтрацию строк и столбцов. Например, df.loc[df[‘region’]==’North’, [‘date’, ‘sales’]] вернёт только данные по продажам для северного региона, исключая ненужные колонки.

Для динамического выбора колонок список можно формировать программно. Например, columns_to_select = [col for col in df.columns if col.endswith(‘_qty’)] и затем df.loc[:, columns_to_select] позволяет выбрать все столбцы с количеством товаров.

Метод loc сохраняет индексы и порядок строк, что упрощает последующую агрегацию и объединение с другими таблицами. Он также корректно работает с булевыми масками и условиями, что делает его универсальным инструментом для выборки данных в pandas.

DataFrame позволяет обращаться к столбцам через точечный синтаксис: df.column_name. Этот метод удобен для быстрого доступа к одной колонке без использования скобок.

  • Создание нового DataFrame с выбранными колонками: df_new = df[[‘column1’, ‘column2’]]
  • Использование методов агрегирования на выбранных столбцах: df[[‘column1’, ‘column2’]].mean()
  • Фильтрация данных по условиям с последующим выбором столбцов: df[df.column1 > 100][[‘column1’, ‘column2’]]

Важно помнить, что атрибут не поддерживает имена столбцов с пробелами или специальными символами. В таких случаях необходимо использовать скобочный синтаксис df[‘column name’].

Использование атрибута ускоряет работу с кодом при обращении к отдельным колонкам и упрощает чтение скриптов, особенно если имена столбцов короткие и не содержат конфликтующих символов.

Комбинирование столбцов с условиями

Например, можно выбрать даты и суммы заказов только для клиентов с суммой больше 1000:

filtered_df = df.loc[df[‘sales’] > 1000, [‘date’, ‘sales’]]

В таблице ниже показан пример исходного DataFrame и результата фильтрации:

customer_id date sales region
101 2025-11-01 1200 North
102 2025-11-02 800 South
103 2025-11-03 1500 East

Для сложных условий используют логические операторы & (и) и | (или), оборачивая каждое условие в скобки. Например: df.loc[(df[‘sales’]>1000) & (df[‘region’]==’North’), [‘date’, ‘sales’]].

Сохранение выбранных столбцов в новый DataFrame

После выбора нескольких столбцов из исходного DataFrame их можно сохранить в отдельный объект для дальнейшей обработки. Это упрощает работу с подтаблицами и предотвращает случайное изменение исходных данных.

Пример сохранения столбцов [‘date’, ‘sales’, ‘customer_id’] в новый DataFrame:

df_selected = df[[‘date’, ‘sales’, ‘customer_id’]]

Преимущества сохранения в новый DataFrame:

  • Изоляция подмножества данных для отчётов или визуализации
  • Сохранение оригинального индекса строк
  • Возможность последующей фильтрации и агрегирования без влияния на исходный DataFrame

Для динамического выбора столбцов рекомендуется использовать переменные списков. Например:

  1. Определяем список нужных колонок: columns_to_keep = [‘date’, ‘sales’]
  2. Создаём новый DataFrame: df_filtered = df[columns_to_keep]
  3. Применяем дополнительные операции, например: df_filtered.mean() или df_filtered.to_csv(‘filtered.csv’)

Такой подход позволяет формировать готовые подтаблицы для анализа, хранения и передачи данных другим инструментам, сохраняя структуру и порядок выбранных столбцов.

Вопрос-ответ:

Как выбрать сразу несколько столбцов в DataFrame?

Для выбора нескольких столбцов используйте список с их именами в квадратных скобках. Например, df[[‘column1’, ‘column2’]] вернёт только эти колонки. Такой способ сохраняет порядок столбцов и индекс строк.

Можно ли динамически формировать список столбцов для выбора?

Да, можно создавать список колонок программно. Например, columns_to_select = [col for col in df.columns if col.endswith(‘_qty’)]. После этого можно вывести выбранные столбцы через df[columns_to_select], что упрощает работу с большими таблицами.

Как использовать метод loc для фильтрации строк и вывода столбцов одновременно?

Метод loc позволяет указать условие для строк и список столбцов одновременно. Например: df.loc[df[‘sales’]>1000, [‘date’, ‘sales’]] вернёт только строки с продажами больше 1000 и колонки ‘date’ и ‘sales’.

Что делать, если имя столбца содержит пробел или специальные символы?

В таких случаях точечный синтаксис df.column_name не работает. Необходимо использовать скобочный вариант: df[‘column name’]. Это позволит корректно выбрать колонку без ошибок.

Как сохранить выбранные столбцы в новый DataFrame для дальнейшей работы?

Создайте новый DataFrame через подвыборку столбцов. Например, df_selected = df[[‘date’, ‘sales’, ‘customer_id’]]. Новый DataFrame сохраняет индексы и порядок строк, что удобно для фильтрации, агрегации или экспорта в CSV и другие форматы.

Ссылка на основную публикацию