Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
28 Июл 2024
7 мин
15338

Pandas: обзор библиотеки для Python

Пройдите тест, узнайте какой профессии подходите

Рассмотрим пример с алмазами. Нужны библиотеки Seaborn и Matplotlib, которые установили вместе с Anaconda.

Pandas создал разработчик Уэс МакКинни в 2008 году. Название библиотеки связано с Panel Data и Python Data Analysis.

Библиотека Pandas — «рабочая лошадка» аналитика данных. Она входит в топ-5 самых востребованных навыков для вакансий в области Data science.

Что такое Pandas для Python

Pandas — библиотека для языка программирования Python. Это как Excel, но мощнее. Легко обрабатывает данные объемом в миллион строк. А еще у Pandas открытый исходный код и подробная документация.

Поэтому в онлайн-университете Skypro на курсе «Аналитик данных» студентам дают основы Python. За двенадцать месяцев освоите базовые навыки и станете обрабатывать данные быстрее и качественнее, изучите основы Pandas. Научитесь разрабатывать и внедрять стратегические инициативы на основе аналитики, делать презентации с визуализацией данных в BI-инструментах, проводить A/B-тестирования и выдвигать гипотезы. Всё это вы освоите на практике, которая занимает 70% от всего объема программы.

Для чего применяют

Библиотека Pandas в Python упрощает операции, которые занимают много времени.

  • Загружает и сохраняет данные. Pandas работает с внешними источниками данных, CSV-, Excel-, JSON-, SQL- и HTML-файлами. Например, можно загрузить файл с данными о студентах одной строкой.
    import pandas as pd
    df = pd.read_csv("students.csv")
    Теперь данные из файла доступны в виде таблицы, с которой удобно работать.Можно сохранить обработанную информацию обратно в файл.
    df.to_csv("students_cleaned.csv", index=False)
    Теперь есть чистая версия данных в новом файле.
  • Очищает и обрабатывает данные. Перед тем как анализировать, нужно исправить ошибки в данных: удалить или заполнить пропущенные значения, исправить нескорректированные данные и преобразовывать информацию в нужный формат. Например, в таблице пропущены значения в колонке «Возраст».
    df["Возраст"].fillna(df["Возраст"].mean(), inplace=True)
    Теперь все пропущенные значения заменены на средний возраст.
  • Анализирует данные. Pandas быстро находит нужную информацию. Например, можно рассчитать среднюю оценку студентов.
    df["Оценка"].mean()
    Библиотека мгновенно выдаст среднее значение.
    Если нужно оставить только тех, у кого рейтинг выше 80.
    df[df["Оценка"] > 80]
    Теперь в таблице остались только успешные студенты.
  • Группирует данные. Если нужно указать данные по какому-то признаку, например: подсчитать среднюю зарплату по отделам или узнать, сколько денег в среднем приносит каждый товар.
    df.groupby("Товар")["Выручка"].mean()
  • Объединяет несколько столбцов. Иногда данные сохраняются в разных файлах или таблицах. С Pandas легко объединить сведения. Например, есть две таблицы: с именами студентов и их оценками. Соединим их в одну.
    df_total = pd.merge(df_students, df_grades, on="Имя")
  • Автоматизирует отчеты. С Pandas можно автоматизировать обработку больших объемов данных. Например, каждое утро программа будет загружать новый файл с продажами, очищать его, делать анализ, фильтровать заказы по регионам и сохранять отчет в отдельном файле.
    df_filtered = df[df["Регион"] == "Москва"] df_filtered.to_csv("moscow_orders.csv", index=False)

Структуры классов

Есть два главных класса библиотеки: Series и DataFrame.

  • Класс Series
    Series — одномерный индексированный массив, который хранит данные любого типа. Номер записи в массиве называется индексом. Например, есть список оценок студентов. Можно создать Series, где каждый элемент — это оценка, а индекс — это номер студента.
    import pandas as pd
    # Создаем Series с оценками
    grades = pd.Series([5, 4, 3, 5, 2], index=['Студент 1', 'Студент 2', 'Студент 3', 'Студент 4', 'Студент 5'])
    print(grades)
  • Класс DataFrame
    DataFrame — таблица с разными типами столбцов — двумерная структура данных. Например, информация о нескольких студентах, с именами и оценками.
    data = {
    'Имя': ['Аня', 'Маша', 'Петя'],
    'Возраст': [23, 30, 22],
    'Оценка': [5, 4, 3]
    }
    # Создаем DataFrame
    students_df = pd.DataFrame(data)
    print(students_df)

Базовые операции со столбцами и строками

В Pandas удобно выполнять разные операции со строками и столбцами в DataFrame.

  • Получать данные
    Чтобы получить один столбец из DataFrame, нужно указать его имя.
    import pandas as pd
    data = {
    'Имя': ['Аня', 'Маша', 'Петя'],
    'Возраст': [23, 30, 22],
    'Оценка': [5, 4, 3]
    }
    students_df = pd.DataFrame(data)
    # Получаем столбец "Возраст"
    age_column = students_df['Возраст']
    print(age_column)
    Получить строку по индексу поможет метод iloc.
    # Получаем первую строку (индекс 0)
    first_row = students_df.iloc[0]
    print(first_row)
  • Добавлять и удалять данные
    Добавьте новый столбец — просто присвойте ему значение.
    # Добавляем новый столбец "Город"
    students_df['Город'] = ['Москва', 'Санкт-Петербург', 'Москва']
    print(students_df)
    Удалите столбец методом drop().
    # Удаляем столбец "Оценка"
    students_df = students_df.drop('Оценка', axis=1)
    print(students_df)
  • Фильтровать данные
    По определенному критерию.
    # Фильтруем студентов старше 25 лет
    older_students = students_df[students_df['Возраст'] > 25]
    print(older_students)
  • Изменять значения
    Чтобы изменить значения в столбце, присвойте новые по индексу.
    # Изменяем возраст студента с индексом 1 (Маша)
    students_df.at[1, 'Возраст'] = 31
    print(students_df)
  • Сортировать данные
    По определенному столбцу.
    # Сортируем DataFrame по возрасту
    sorted_df = students_df.sort_values(by='Возраст')
    print(sorted_df)
  • Создавать сводные данные
    Получите сводные данные о DataFrame методом describe(). Он показывает статистику числовых столбцов.
    # Получаем сводную статистику
    stats = students_df.describe()
    print(stats)

Занятия на курсе «Аналитик данных» проходят онлайн. Вы сами выбираете, когда удобно учиться: утром, днем, ночью или на выходных. Уроки доступны в нескольких форматах: видео и текстовые конспекты. Изучайте, как вам удобнее. Объяснять сложные термины простыми словами вам будут опытные преподаватели — сотрудники банков и ведущих компаний. Они совмещают свою основную работу с наставничеством. После учебы вы получите диплом о профессиональной переподготовке и устроитесь на любимую работу. А консультанты по карьере помогут составить резюме и подскажут, как не растеряться на собеседовании.

Как установить Pandas

Установите набор программ Anaconda — в него входит Python вместе с Pandas и другими полезными библиотеками.

  1. Скачайте программу с сайта Anaconda.
  2. Откройте файл и следуйте инструкциям. Не забудьте поставить галочку в опции Add Anaconda to my PATH environment variable.
  3. Перезагрузите компьютер.
  4. Откройте Anaconda Navigator и запустите Jupyter Notebook.

После этого импортируйте Pandas командой import pandas as pd.

Основная функциональность

С методами классов Series и DataFrame можно считать сводные статистики: среднюю, медиану, сумму и другие.

Например, загрузите данные с характеристиками алмазов.

таблица с кодом

Посчитайте среднее и стандартное отклонение цены.

код

Для статистик по категориям используйте группировку.

Посмотрите средние значения цены и размера по разным типам огранки из колонки cut.

код

Используйте сводные таблицы для двух групп.

Например, узнайте среднюю цену алмазов по качеству обработки и цвету.

код

Визуализируйте данные на Pandas — создайте графики. Используйте метод plot с параметром kind, который отвечает за тип визуализации.

Виды графиков:

  1. линейный — выпадает по умолчанию;
  2. столбчатый;
  3. гистограмма;
  4. боксплот;
  5. диаграмма рассеяния.

Постройте диаграмму рассеяния и посмотрите, как цена зависит от размера.

график, состоящий из большого количества точек

Примеры использования в аналитике

Рассмотрим пример с алмазами. Нужны библиотеки Seaborn и Matplotlib, которые установили вместе с Anaconda.

Загрузите таблицу и посмотрите на ее начало, используйте команду head.

таблица

Shape показывает количество строк (53 940) и столбцов (10):

df.shape

Методом info посмотрите на типы данных и сколько значений заполнено в колонках.

df.info()

Сolor, cut и clarity — категориальные переменные. Остальные — вещественные (числа).

Проанализируйте их по отдельности.

  • Анализ категориальных переменных
    Посмотрите на уникальные значения по каждой колонке командой value_counts. Вызовете ее из цикла.
    код
    Для визуализации используйте боксплоты, которые показывают, как распределяются цены по каждой категории.
    код
    На графиках видно, что дороже всего стоят алмазы с параметрами:

    • Premium в колонке cut.
    • VS1, VS2, SI1, SI2, I1 в колонке clarity.
    • H, I или J в колонке color.
  • Анализ вещественных переменных
    Получите статистику по числовым столбцам командой describe.
    таблица
    Постройте диаграмму рассеяния и посмотрите, как стоимость камней связана с другими параметрами.
    графики
    Вывод: цена в первую очередь зависит от переменных carat и x.Колонки carat, x, cut, clarity и color влияют на стоимость алмаза. Теперь можно построить модель, чтобы предсказать цены на основе этих переменных.

Краткие итоги

  • Pandas — это библиотека Python, которая экономит время и делает работу с данными удобной и быстрой.
  • Pandas читает, анализирует, группирует, очищает и сохраняет данные.
  • Класс Series используют, чтобы представить данные в виде одного столбца. DataFrame — если данные сложные и нужно организовать их в таблицы.
  • Чтобы пользоваться Pandas, установите Anaconda.

Добавить комментарий