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 и другими полезными библиотеками.
- Скачайте программу с сайта Anaconda.
- Откройте файл и следуйте инструкциям. Не забудьте поставить галочку в опции Add Anaconda to my PATH environment variable.
- Перезагрузите компьютер.
- Откройте Anaconda Navigator и запустите Jupyter Notebook.
После этого импортируйте Pandas командой import pandas as pd.
Основная функциональность
С методами классов Series и DataFrame можно считать сводные статистики: среднюю, медиану, сумму и другие.
Например, загрузите данные с характеристиками алмазов.
Посчитайте среднее и стандартное отклонение цены.
Для статистик по категориям используйте группировку.
Посмотрите средние значения цены и размера по разным типам огранки из колонки cut.
Используйте сводные таблицы для двух групп.
Например, узнайте среднюю цену алмазов по качеству обработки и цвету.
Визуализируйте данные на Pandas — создайте графики. Используйте метод plot с параметром kind, который отвечает за тип визуализации.
Виды графиков:
- линейный — выпадает по умолчанию;
- столбчатый;
- гистограмма;
- боксплот;
- диаграмма рассеяния.
Постройте диаграмму рассеяния и посмотрите, как цена зависит от размера.
Примеры использования в аналитике
Рассмотрим пример с алмазами. Нужны библиотеки Seaborn и Matplotlib, которые установили вместе с Anaconda.
Загрузите таблицу и посмотрите на ее начало, используйте команду head.
Shape показывает количество строк (53 940) и столбцов (10):
Методом 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.
Добавить комментарий