Работа с библиотекой pandas в Jupyter

Как работать jupyter библиотека pandas

Содержание статьи

Как работать jupyter библиотека pandas

Pandas предоставляет удобные инструменты для работы с табличными данными в Python, включая чтение файлов CSV, Excel и баз данных SQL. В Jupyter Notebook каждая ячейка позволяет выполнять код пошагово, что упрощает тестирование и анализ данных.

Создание DataFrame в pandas начинается с импорта библиотеки и загрузки данных. Для CSV-файлов используется pd.read_csv(‘имя_файла.csv’), для Excel – pd.read_excel(‘имя_файла.xlsx’). После загрузки можно просматривать первые строки с помощью head() и получать сводную информацию через info() и describe().

Фильтрация данных выполняется через условия на столбцы: df[df[‘столбец’] > значение]. Для объединения таблиц применяются методы merge() и concat(). Агрегирование позволяет быстро считать сумму, среднее, минимум или максимум с помощью groupby().

Сохранение обработанных данных осуществляется в привычные форматы: df.to_csv(‘новый_файл.csv’, index=False) или df.to_excel(‘новый_файл.xlsx’, index=False). Эти шаги помогают фиксировать промежуточные результаты и делиться ими с коллегами без потери структуры данных.

Установка и импорт pandas в Jupyter Notebook

Для начала работы с pandas в Jupyter Notebook требуется установка библиотеки. В командной строке или в ячейке Jupyter выполните !pip install pandas. Если используется Anaconda, библиотека уже установлена, достаточно проверить версию через conda list pandas.

После установки pandas импортируется стандартным способом: import pandas as pd. Это позволяет использовать сокращение pd для вызова всех функций библиотеки. Рекомендуется сразу проверять версию: pd.__version__, чтобы убедиться, что установлена актуальная сборка, совместимая с вашим проектом.

Если библиотека не устанавливается из-за прав доступа, используйте !pip install —user pandas. На Linux и Mac возможна установка через менеджер пакетов conda: conda install pandas, что гарантирует совместимость с другими библиотеками Anaconda.

Создание и просмотр DataFrame из разных источников

DataFrame в pandas можно создавать из словарей, списков или NumPy массивов. Например, df = pd.DataFrame({‘Имя’: [‘Анна’, ‘Иван’], ‘Возраст’: [25, 30]}) формирует таблицу с указанными столбцами. Для больших наборов данных предпочтительно использовать CSV или Excel файлы: pd.read_csv(‘данные.csv’) и pd.read_excel(‘данные.xlsx’, sheet_name=’Лист1′).

При загрузке данных из SQL базы применяется pd.read_sql_query(‘SELECT * FROM таблица’, соединение), где соединение создается через SQLAlchemy или sqlite3. Для JSON формата подходит pd.read_json(‘данные.json’), а для парсинга веб-данных используется pd.read_html(‘ссылка_на_таблицу’).

Просмотр первых строк осуществляется с помощью df.head(10), а последних – df.tail(10). Для быстрой оценки структуры таблицы используется df.info(), а для анализа числовых данных – df.describe(). Эти методы помогают понять типы столбцов, наличие пропусков и диапазон значений.

Фильтрация и выборка данных по условиям

Фильтрация данных в pandas выполняется через булевы выражения на столбцах. Например, df[df[‘Возраст’] > 30] выбирает строки, где значение столбца ‘Возраст’ больше 30. Для нескольких условий используется оператор & для «И» и | для «ИЛИ»: df[(df[‘Возраст’] > 30) & (df[‘Город’] == ‘Москва’)].

Выбор конкретных столбцов после фильтрации выполняется через список: df.loc[df[‘Возраст’] > 30, [‘Имя’, ‘Город’]]. Метод query() позволяет писать условия в виде строки: df.query(«Возраст > 30 and Город == ‘Москва'»), что повышает читаемость при сложных фильтрах.

Для поиска уникальных значений используется df[‘Статус’].unique(), а подсчет количества элементов – df[‘Статус’].value_counts(). Это помогает быстро оценивать распределение категориальных данных.

Пример визуального представления выбранных данных в таблице:

Имя Возраст Город
Иван 35 Москва
Анна 42 Москва
Олег 38 Москва

Для работы с пропущенными значениями применяется df[df[‘Зарплата’].notnull()], а для фильтрации по строковому совпадению – df[df[‘Должность’].str.contains(‘инженер’)]. Эти методы позволяют формировать точные выборки для последующего анализа.

Группировка данных и вычисление агрегатов

Группировка данных и вычисление агрегатов

Метод groupby() позволяет объединять строки по значению одного или нескольких столбцов. Например, df.groupby(‘Отдел’)[‘Зарплата’].mean() вычисляет среднюю зарплату по каждому отделу. Для нескольких агрегатов используется agg(): df.groupby(‘Отдел’)[‘Зарплата’].agg([‘mean’,’max’,’sum’]).

Группировка по нескольким столбцам выполняется так: df.groupby([‘Отдел’,’Город’])[‘Зарплата’].sum(), что дает суммарную зарплату для каждой комбинации отдела и города. Для работы с числовыми данными полезен describe() после группировки: df.groupby(‘Отдел’)[‘Возраст’].describe(), позволяя получить минимум, максимум, среднее и квартильные значения.

Для подсчета количества элементов применяется size() или count(). Разница в том, что count() учитывает только непустые значения, а size() возвращает общее количество строк в группе. Это важно при работе с пропущенными данными.

Применение агрегатов к нескольким столбцам одновременно: df.groupby(‘Отдел’).agg({‘Зарплата’:’mean’,’Возраст’:’max’}). Такой подход упрощает получение разных статистик в одной таблице и снижает необходимость создавать отдельные вычисления для каждого столбца.

Объединение и соединение нескольких таблиц

Для объединения таблиц по строкам используется pd.concat(). Например, pd.concat([df1, df2], ignore_index=True) соединяет две таблицы с одинаковыми столбцами и сбрасывает индексы. Можно объединять и по столбцам: pd.concat([df1, df2], axis=1), что добавляет новые столбцы к существующему DataFrame.

Соединение таблиц по ключевым столбцам выполняется через merge(). Пример: pd.merge(df1, df2, on=’ID’, how=’inner’) возвращает строки, где значения столбца ‘ID’ совпадают в обеих таблицах. Параметр how принимает значения: ‘inner’, ‘left’, ‘right’, ‘outer’, влияя на тип объединения и включение непересекающихся данных.

Для соединений с разными именами ключевых столбцов используется left_on и right_on: pd.merge(df1, df2, left_on=’ID1′, right_on=’ID2′, how=’left’). Это позволяет объединять таблицы с несоответствующими названиями колонок без изменения исходных данных.

При работе с большими наборами данных полезно проверять дубликаты после объединения: df.duplicated().sum(). Для сохранения результата применяется df.to_csv(‘объединенный_файл.csv’, index=False) или df.to_excel(‘объединенный_файл.xlsx’, index=False), что фиксирует структуру и значения объединенной таблицы.

Сохранение изменений и экспорт данных в файлы

После обработки данных в pandas результаты можно сохранить для дальнейшего использования или передачи коллегам. Основные форматы – CSV, Excel и JSON. Выбор формата зависит от структуры данных и требований к совместимости.

Примеры экспорта:

  • CSV: df.to_csv(‘файл.csv’, index=False, sep=’;’) – сохраняет таблицу без индекса и с указанным разделителем.
  • Excel: df.to_excel(‘файл.xlsx’, sheet_name=’Данные’, index=False) – позволяет задавать имя листа и исключить индекс.
  • JSON: df.to_json(‘файл.json’, orient=’records’, force_ascii=False) – сохраняет данные в виде списка словарей, сохраняет кириллицу без кодирования.

Для последовательного сохранения промежуточных результатов удобно использовать нумерацию файлов: df.to_csv(f’шаг_{i}.csv’, index=False), где i – номер шага анализа. Это помогает вернуться к любому этапу без повторного вычисления.

Если требуется сохранять только часть таблицы:

  • Выбранные столбцы: df[[‘Имя’,’Возраст’]].to_csv(‘выборка.csv’, index=False).
  • Фильтрованные строки: df[df[‘Возраст’] > 30].to_excel(‘старше_30.xlsx’, index=False).

При работе с большими файлами можно использовать параметр chunksize для поэтапной записи, что уменьшает нагрузку на память: df.to_csv(‘большой_файл.csv’, chunksize=10000). Это ускоряет сохранение и предотвращает зависания при работе с объемными данными.

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

Как загрузить CSV-файл в Jupyter с помощью pandas?

Для загрузки CSV-файла используется функция pd.read_csv(‘имя_файла.csv’). Она считывает данные в объект DataFrame, где строки и столбцы соответствуют исходной таблице. Если разделитель отличается от запятой, укажите параметр sep, например: pd.read_csv(‘файл.csv’, sep=’;’). После загрузки удобно просмотреть первые строки с помощью df.head() и оценить типы столбцов через df.info().

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

Фильтрация выполняется через булевы выражения. Для нескольких условий используйте операторы & для «И» и | для «ИЛИ». Например, df[(df[‘Возраст’] > 30) & (df[‘Город’] == ‘Москва’)] вернет строки, где возраст больше 30 и город Москва. Для текстовых столбцов можно применять метод str.contains: df[df[‘Должность’].str.contains(‘инженер’)], чтобы выбрать все позиции с этим словом.

Какие способы существуют для объединения двух DataFrame?

Для объединения таблиц по строкам используется pd.concat([df1, df2], ignore_index=True). Если требуется объединить по ключевым столбцам, применяют pd.merge(df1, df2, on=’ID’, how=’inner’). Параметр how определяет тип соединения: ‘inner’ — пересечение, ‘left’ — все строки левого DataFrame, ‘right’ — правого, ‘outer’ — объединение всех строк. Для объединения с разными именами ключевых столбцов используют left_on и right_on.

Как вычислить среднее, максимум и количество элементов по группам?

Для группировки применяется groupby(). Например, df.groupby(‘Отдел’)[‘Зарплата’].agg([‘mean’,’max’,’count’]) вернет среднюю зарплату, максимальную и количество сотрудников в каждом отделе. Для нескольких столбцов можно передать словарь: df.groupby(‘Отдел’).agg({‘Зарплата’:’mean’,’Возраст’:’max’}), что создаст агрегированные показатели по каждому столбцу одновременно.

Как сохранить изменения в Excel или CSV после обработки данных?

Для сохранения данных используется метод to_csv или to_excel. Например, df.to_csv(‘результат.csv’, index=False, sep=’;’) сохраняет таблицу без индекса и с указанным разделителем. В Excel: df.to_excel(‘результат.xlsx’, sheet_name=’Данные’, index=False). Если нужно сохранить только выбранные столбцы или фильтрованные строки, можно использовать срезы: df[[‘Имя’,’Возраст’]].to_csv(‘выборка.csv’, index=False) или df[df[‘Возраст’]>30].to_excel(‘старше_30.xlsx’, index=False).

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