Original size 1600x2258

Анализ данных Top Rated Coffee

PROTECT STATUS: not protected
7

Описание

База данных с рейтингами кофе является подходящей основой для проекта по анализу данных, так как содержит разнообразные числовые и категориальные переменные, позволяющие строить модели и делать выводы о зависимости между характеристиками кофе. Данные не являются временными рядами, включают как минимум один категориальный признак (например, страна происхождения или уровень обжарки), а также позволяют выделить целевую переменную, такую как общий балл (total_score), и предикторы — цену, вкусовые параметры и другие характеристики.

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

Этапы работы:

1. Выбор данных 2. Загрузка файла CSV со статистикой в среду программирования 3. Изучение и работа с данными 4. Визуализация статистики с помощью различных типов графиков

Ход работы

Импорт трёх ключевых библиотек для анализа и визуализации данных: pandas для работы с табличными данными, matplotlib.pyplot для построения графиков и seaborn для создания статистических и более сложных визуализаций поверх matplotlib, что подготавливает среду для эффективного анализа и наглядного представления данных

big
Original size 1920x575

Фильтрация и сортировка

Фильтрация с одним условием.

Из таблицы data выбираются только строки, где значение в столбце 'price_per_ounce' больше 100, результат сохраняется в переменную filtered_single.

Сортировка отфильтрованного DataFrame по столбцу 'price_per_ounce' в порядке убывания, результат сохраняется в переменную sorted_single

Original size 1920x426

Визуализация: фигура размером 10×6 дюймов, строится горизонтальная столбчатая диаграмма с помощью seaborn, отображающая топ-10 сортов кофе из отсортированного DataFrame по цене за унцию, где ось Y — названия кофе, ось X — цена, используется цветовая палитра 'mako'.

Original size 1920x957
Original size 1920x1164

Фильтрация по нескольким условиям

Фильтрация DataFrame с использованием нескольких условий: выбираются строки, где значение 'total_score' больше 90, 'roast_level' равно 'Medium' и 'price_per_ounce' меньше 70.

Сортировка отфильтрованного DataFrame по столбцу 'price_per_ounce' в порядке возрастания с помощью метода sort_values (), результат сохраняется в переменную sorted_multi, что упорядочивает данные по цене за унцию от самой низкой к высокой.

Original size 1920x685

Создаётся фигура размером 10×6 дюймов, строится точечная диаграмма (scatter plot) с помощью seaborn на данных sorted_multi, где по оси X откладывается цена за унцию, по оси Y — общий балл кофе.

Original size 1920x969
Original size 1920x1130

Новые признаки

Создаётся новый столбец 'score_category' в DataFrame data на основе значений столбца 'total_score', применяя анонимную функцию (lambda) к каждому значению. Если 'total_score' больше 95, то присваивается 'Excellent', в противном случае — 'Good'. Этот метод позволяет эффективно категоризировать данные.

И создаётся фигура размером 6×4 дюйма, строится вертикальная столбчатая диаграмма на основе подсчёта уникальных значений в столбце 'score_category' DataFrame data с помощью метода value_counts () и функции plot (kind='bar') из pandas

Original size 1920x628
Original size 1920x1160

Определяется функция price_category, которая принимает строку (row) из DataFrame, извлекает значение цены за унцию ('price_per_ounce') и возвращает категорию в зависимости от этого значения: если цена отсутствует (NaN) — возвращает 'Unknown', если меньше 5 — 'Low', если от 5 до 50 включительно — 'Medium', иначе — 'High'. Эта функция предназначена для классификации данных по ценовым категориям.

И применение функции price_category ко всем строкам DataFrame data с помощью метода apply и параметра axis=1, который указывает, что функция применяется по строкам. В результате создаётся новый столбец 'price_category', где для каждой строки вычисляется категория цены на основе значения в столбце 'price_per_ounce'.

Original size 1920x811

Визуализация

Original size 1920x715
Original size 1920x1160

Сводные таблицы

Создаётся сводная таблица (pivot table) из DataFrame data, где строки индексируются по странам происхождения кофе ('origin_country'), а для каждой страны вычисляется среднее значение цены за унцию ('price_per_ounce') с помощью функции агрегации mean. Результат сохраняется в переменную pivot1 в виде нового DataFrame, который показывает среднюю цену за унцию кофе по каждой стране. Это упрощает анализ цен по странам происхождения.

Original size 1920x628

Сортировка сводной таблицы pivot1 по среднему значению цены за унцию в порядке убывания и сброс индекса для удобства дальнейшей работы и визуализация.

Original size 1920x725
Original size 1920x974

Создаётся сводная таблица (pivot table) из DataFrame data с использованием двух столбцов в качестве индекса: 'origin_country' и 'roast_level'. Для каждой комбинации этих двух параметров вычисляется среднее значение общего балла ('total_score') с помощью функции агрегации mean. Результат сохраняется в переменную pivot2 в виде DataFrame с многоуровневым индексом, что позволяет анализировать средние оценки кофе по странам происхождения и уровню обжарки одновременно.

Original size 1920x628

Подсчитывается количество записей в DataFrame data для каждой комбинации страны происхождения ('origin_country') и уровня обжарки ('roast_level') с помощью groupby и size (), результат преобразуется в DataFrame с колонками 'origin_country', 'roast_level' и 'count' через reset_index ().

Затем выбираются только те комбинации, у которых количество записей не меньше трёх, и создаётся новый DataFrame filtered_data, объединяющий исходные данные с этими частыми комбинациями по столбцам 'origin_country' и 'roast_level' с помощью merge. На основе filtered_data формируется сводная таблица, где строки — страны происхождения, столбцы — уровни обжарки, а значения — средние общие баллы ('total_score') для каждой пары. Это позволяет анализировать средние оценки кофе по часто встречающимся сочетаниям страны и обжарки, исключая редкие комбинации.

Original size 1920x553

Визуализация

Original size 1920x517
Original size 1920x1059

Создаётся сводная таблица из DataFrame data, где строки индексируются по странам происхождения кофе ('origin_country'), а для каждого индекса вычисляются средние значения двух столбцов: общего балла ('total_score') и цены за унцию ('price_per_ounce') с помощью функции агрегации mean. Затем результат сбрасывается в обычный DataFrame с помощью reset_index (). После этого таблица сортируется по среднему общему баллу в порядке убывания, и выводятся первые 10 строк — топ-10 стран с наивысшими средними оценками кофе. Это позволяет одновременно сравнить качество и цену кофе по странам происхождения, выделяя лучшие из них по оценке.

Original size 1920x2585
Original size 1920x1304

Вывод

В ходе работы с данными о кофе были освоены ключевые этапы анализа и визуализации с помощью библиотек pandas, matplotlib и seaborn. Сначала данные фильтровались по различным условиям (например, по цене или оценке), затем сортировались для упорядочивания информации. Для наглядного представления использовались разные типы графиков: горизонтальные и вертикальные столбчатые диаграммы, точечные графики, что помогало выявлять закономерности и сравнивать параметры кофе по разным категориям.

Были применены методы создания новых столбцов с категоризацией данных через функции и lambda-выражения, что расширило возможности анализа. Сводные таблицы (pivot tables) позволили агрегировать данные по странам происхождения и уровням обжарки, выявляя средние значения цены и оценок, а также строить более сложные аналитические представления, включая фильтрацию по частоте встречаемости комбинаций.

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

Анализ данных Top Rated Coffee
7
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more