# Анализ данных о сердечно-сосудистых заболеваниях ## Описание проекта В данном проекте выполнен анализ данных о факторах риска сердечно-сосудистых заболеваний на основе датасета Heart Disease Dataset (cleveland1.csv). Работа выполнена в JupyterLab в рамках практической работы №3 по анализу и визуализации данных. --- ## Цель работы Освоить базовую работу с JupyterLab, библиотеками для анализа данных и визуализации, а также закрепить навыки ведения проекта с использованием Git. --- ## Используемые библиотеки В проекте использовались следующие библиотеки: - pandas - numpy - matplotlib - seaborn - tqdm --- ## Что было сделано В ходе работы были выполнены следующие действия: 1. **Загружен датасет** из CSV-файла `cleveland1.csv` 2. **Проведён первичный анализ данных:** - просмотр первых строк таблицы (`.head()`) - анализ структуры данных (`.info()`) - получение статистического описания (`.describe()`) - проверка пропущенных значений (`.isnull().sum()`) 3. **Выполнена подготовка данных:** - стандартизированы названия колонок 4. **Проведён анализ по группам:** - группировка по полу (gender) - группировка по наличию заболевания (target) - сравнение средних показателей 5. **Создан новый признак** `high_cholesterol_flag` для выделения случаев повышенного риска (холестерин > 240) 6. **Построены графики:** - boxplot распределения возраста у больных и здоровых - scatterplot взаимосвязи холестерина и пульса - гистограмма распределения возраста пациентов - boxplot уровня холестерина по полу - тепловая карта корреляций всех числовых признаков 7. **Использована библиотека tqdm** для отображения прогресса обработки данных 8. **Сохранены результаты** обработки в CSV-файл --- ## Результаты анализа На основе проведённого анализа получены следующие выводы: 1. **Возраст** является значимым фактором риска — средний возраст больных пациентов выше, чем здоровых 2. **Холестерин** положительно коррелирует с наличием заболевания 3. **Максимальный пульс** у больных пациентов в среднем ниже 4. **Корреляционная матрица** показывает умеренную связь между возрастом и заболеванием --- ## Структура проекта - praktika03/.venv/ - praktika03/.gitignore - praktika03/README.md - praktika03/week2_analysis.ipynb - praktika03/cleveland1.csv - praktika03/cleveland2.csv - praktika03/Dataset Heart Disease.csv - praktika03/heart_disease_results.csv ввоооооооооооооооооооот def run_length_encode(s: str) -> list: if not s: return [] result = [] current_char = s[0] count = 1 for char in s[1:]: if char == current_char: count += 1 else: result.append((current_char, count)) current_char = char count = 1 result.append((current_char, count)) return result # Тесты assert run_length_encode("aaabbc") == [("a", 3), ("b", 2), ("c", 1)] assert run_length_encode("abc") == [("a", 1), ("b", 1), ("c", 1)] assert run_length_encode("") == []