{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "d534805c-6e4b-4704-b25f-3a45babbab2e", "metadata": {}, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: 'top_movies.csv'", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mFileNotFoundError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 10\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m numpy \u001b[38;5;28;01mas\u001b[39;00m np\n\u001b[32m 7\u001b[39m \n\u001b[32m 8\u001b[39m \n\u001b[32m 9\u001b[39m file_path = \u001b[33m\"top_movies.csv\"\u001b[39m\n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m df = pd.read_csv(file_path)\n\u001b[32m 11\u001b[39m \n\u001b[32m 12\u001b[39m \n\u001b[32m 13\u001b[39m print(\u001b[33m\"=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\"\u001b[39m)\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:873\u001b[39m, in \u001b[36mread_csv\u001b[39m\u001b[34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, skip_blank_lines, parse_dates, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[39m\n\u001b[32m 861\u001b[39m kwds_defaults = _refine_defaults_read(\n\u001b[32m 862\u001b[39m dialect,\n\u001b[32m 863\u001b[39m delimiter,\n\u001b[32m (...)\u001b[39m\u001b[32m 869\u001b[39m dtype_backend=dtype_backend,\n\u001b[32m 870\u001b[39m )\n\u001b[32m 871\u001b[39m kwds.update(kwds_defaults)\n\u001b[32m--> \u001b[39m\u001b[32m873\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43m_read\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfilepath_or_buffer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mkwds\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:300\u001b[39m, in \u001b[36m_read\u001b[39m\u001b[34m(filepath_or_buffer, kwds)\u001b[39m\n\u001b[32m 297\u001b[39m _validate_names(kwds.get(\u001b[33m\"\u001b[39m\u001b[33mnames\u001b[39m\u001b[33m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[32m 299\u001b[39m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m300\u001b[39m parser = \u001b[30;43mTextFileReader\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfilepath_or_buffer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwds\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 302\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[32m 303\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1645\u001b[39m, in \u001b[36mTextFileReader.__init__\u001b[39m\u001b[34m(self, f, engine, **kwds)\u001b[39m\n\u001b[32m 1642\u001b[39m \u001b[38;5;28mself\u001b[39m.options[\u001b[33m\"\u001b[39m\u001b[33mhas_index_names\u001b[39m\u001b[33m\"\u001b[39m] = kwds[\u001b[33m\"\u001b[39m\u001b[33mhas_index_names\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m 1644\u001b[39m \u001b[38;5;28mself\u001b[39m.handles: IOHandles | \u001b[38;5;28;01mNone\u001b[39;00m = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m1645\u001b[39m \u001b[38;5;28mself\u001b[39m._engine = \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_make_engine\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mf\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mengine\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1904\u001b[39m, in \u001b[36mTextFileReader._make_engine\u001b[39m\u001b[34m(self, f, engine)\u001b[39m\n\u001b[32m 1902\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[32m 1903\u001b[39m mode += \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m-> \u001b[39m\u001b[32m1904\u001b[39m \u001b[38;5;28mself\u001b[39m.handles = \u001b[30;43mget_handle\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 1905\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mf\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1906\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmode\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1907\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1908\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mcompression\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mcompression\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1909\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmemory_map\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmemory_map\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mFalse\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1910\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mis_text\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mis_text\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1911\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mencoding_errors\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mstrict\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1912\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mstorage_options\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mstorage_options\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1913\u001b[39m \u001b[30;43m\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 1914\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m.handles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 1915\u001b[39m f = \u001b[38;5;28mself\u001b[39m.handles.handle\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\common.py:926\u001b[39m, in \u001b[36mget_handle\u001b[39m\u001b[34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[39m\n\u001b[32m 921\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[32m 922\u001b[39m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[32m 923\u001b[39m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[32m 924\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m ioargs.encoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs.mode:\n\u001b[32m 925\u001b[39m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m926\u001b[39m handle = \u001b[30;43mopen\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 927\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mhandle\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 928\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mioargs\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mmode\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 929\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mioargs\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 930\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 931\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mnewline\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 932\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 933\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 934\u001b[39m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[32m 935\u001b[39m handle = \u001b[38;5;28mopen\u001b[39m(handle, ioargs.mode)\n", "\u001b[31mFileNotFoundError\u001b[39m: [Errno 2] No such file or directory: 'top_movies.csv'" ] } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from tqdm.auto import tqdm\n", "import time\n", "import numpy as np\n", "\n", "\n", "file_path = \"top_movies.csv\"\n", "df = pd.read_csv(file_path)\n", "\n", "\n", "print(\"=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\")\n", "print(f\"\\nРазмерность таблицы: {df.shape}\")\n", "\n", "print(\"\\nПервые 5 строк:\")\n", "display(df.head())\n", "\n", "print(\"\\nИнформация о типах данных и пропусках:\")\n", "df.info()\n", "\n", "print(\"\\nОписательная статистика числовых признаков:\")\n", "display(df.describe())\n", "\n", "print(\"\\nПроверка на наличие пустых значений:\")\n", "print(df.isnull().sum())\n", "\n", "\n", "print(\"\\nЗапуск процесса анализа строк (имитация)...\")\n", "for index, row in tqdm(df.iterrows(), total=df.shape[0], desc=\"Анализ базы фильмов\"):\n", " time.sleep(0.001)\n", "\n", "sns.set_style(\"whitegrid\")\n", "plt.rcParams['figure.facecolor'] = 'white'\n", "\n", "plt.figure(figsize=(10, 6))\n", "sns.histplot(df[\"vote_average\"], bins=15, kde=True, color=\"teal\", alpha=0.6)\n", "plt.title(\"Распределение средних рейтингов фильмов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Средний рейтинг (0-10)\", fontsize=12)\n", "plt.ylabel(\"Количество фильмов\", fontsize=12)\n", "plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.5)\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 7))\n", "scatter = sns.scatterplot(\n", " data=df, \n", " x=\"popularity\", \n", " y=\"vote_average\", \n", " hue=\"vote_count\", \n", " size=\"vote_count\", \n", " palette=\"viridis\", \n", " sizes=(20, 200), \n", " alpha=0.6\n", ")\n", "plt.title(\"Зависимость рейтинга от популярности и числа голосов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Популярность\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.legend(title=\"Кол-во голосов\", bbox_to_anchor=(1.05, 1), loc='upper left')\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 6))\n", "df['vote_group'] = pd.qcut(df['vote_count'], q=4, labels=['Низкое', 'Среднее', 'Высокое', 'Топ'])\n", "\n", "sns.boxplot(x=\"vote_group\", y=\"vote_average\", data=df, palette=\"Set3\")\n", "plt.title(\"Разброс рейтингов по категориям активности зрителей\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Количество проголосовавших (группы)\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.show()\n", "\n", "print(\"\\n=== ЗАДАНИЕ ВЫПОЛНЕНО С УСПЕХОМ ===\")\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "f3797675-7795-45bd-8b1a-c14620de32c1", "metadata": {}, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: 'top_movies.csv'", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mFileNotFoundError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 10\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m numpy \u001b[38;5;28;01mas\u001b[39;00m np\n\u001b[32m 7\u001b[39m \n\u001b[32m 8\u001b[39m \n\u001b[32m 9\u001b[39m file_path = \u001b[33m\"top_movies.csv\"\u001b[39m\n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m df = pd.read_csv(file_path)\n\u001b[32m 11\u001b[39m \n\u001b[32m 12\u001b[39m \n\u001b[32m 13\u001b[39m print(\u001b[33m\"=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\"\u001b[39m)\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:873\u001b[39m, in \u001b[36mread_csv\u001b[39m\u001b[34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, skip_blank_lines, parse_dates, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[39m\n\u001b[32m 861\u001b[39m kwds_defaults = _refine_defaults_read(\n\u001b[32m 862\u001b[39m dialect,\n\u001b[32m 863\u001b[39m delimiter,\n\u001b[32m (...)\u001b[39m\u001b[32m 869\u001b[39m dtype_backend=dtype_backend,\n\u001b[32m 870\u001b[39m )\n\u001b[32m 871\u001b[39m kwds.update(kwds_defaults)\n\u001b[32m--> \u001b[39m\u001b[32m873\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43m_read\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfilepath_or_buffer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mkwds\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:300\u001b[39m, in \u001b[36m_read\u001b[39m\u001b[34m(filepath_or_buffer, kwds)\u001b[39m\n\u001b[32m 297\u001b[39m _validate_names(kwds.get(\u001b[33m\"\u001b[39m\u001b[33mnames\u001b[39m\u001b[33m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[32m 299\u001b[39m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m300\u001b[39m parser = \u001b[30;43mTextFileReader\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfilepath_or_buffer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwds\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 302\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[32m 303\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1645\u001b[39m, in \u001b[36mTextFileReader.__init__\u001b[39m\u001b[34m(self, f, engine, **kwds)\u001b[39m\n\u001b[32m 1642\u001b[39m \u001b[38;5;28mself\u001b[39m.options[\u001b[33m\"\u001b[39m\u001b[33mhas_index_names\u001b[39m\u001b[33m\"\u001b[39m] = kwds[\u001b[33m\"\u001b[39m\u001b[33mhas_index_names\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m 1644\u001b[39m \u001b[38;5;28mself\u001b[39m.handles: IOHandles | \u001b[38;5;28;01mNone\u001b[39;00m = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m1645\u001b[39m \u001b[38;5;28mself\u001b[39m._engine = \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_make_engine\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mf\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mengine\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1904\u001b[39m, in \u001b[36mTextFileReader._make_engine\u001b[39m\u001b[34m(self, f, engine)\u001b[39m\n\u001b[32m 1902\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[32m 1903\u001b[39m mode += \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m-> \u001b[39m\u001b[32m1904\u001b[39m \u001b[38;5;28mself\u001b[39m.handles = \u001b[30;43mget_handle\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 1905\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mf\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1906\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmode\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1907\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1908\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mcompression\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mcompression\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1909\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmemory_map\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mmemory_map\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mFalse\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1910\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mis_text\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mis_text\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1911\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mencoding_errors\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mstrict\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1912\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mstorage_options\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43moptions\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mstorage_options\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mNone\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 1913\u001b[39m \u001b[30;43m\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 1914\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m.handles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 1915\u001b[39m f = \u001b[38;5;28mself\u001b[39m.handles.handle\n", "\u001b[36mFile \u001b[39m\u001b[32m~\\OneDrive\\Desktop\\1111\\.venv\\Lib\\site-packages\\pandas\\io\\common.py:926\u001b[39m, in \u001b[36mget_handle\u001b[39m\u001b[34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[39m\n\u001b[32m 921\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[32m 922\u001b[39m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[32m 923\u001b[39m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[32m 924\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m ioargs.encoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mb\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs.mode:\n\u001b[32m 925\u001b[39m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m926\u001b[39m handle = \u001b[30;43mopen\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 927\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mhandle\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 928\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mioargs\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mmode\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 929\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mioargs\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mencoding\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 930\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43merrors\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 931\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mnewline\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 932\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 933\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 934\u001b[39m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[32m 935\u001b[39m handle = \u001b[38;5;28mopen\u001b[39m(handle, ioargs.mode)\n", "\u001b[31mFileNotFoundError\u001b[39m: [Errno 2] No such file or directory: 'top_movies.csv'" ] } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from tqdm.auto import tqdm\n", "import time\n", "import numpy as np\n", "\n", "\n", "file_path = \"top_movies.csv\"\n", "df = pd.read_csv(file_path)\n", "\n", "\n", "print(\"=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\")\n", "print(f\"\\nРазмерность таблицы: {df.shape}\")\n", "\n", "print(\"\\nПервые 5 строк:\")\n", "display(df.head())\n", "\n", "print(\"\\nИнформация о типах данных и пропусках:\")\n", "df.info()\n", "\n", "print(\"\\nОписательная статистика числовых признаков:\")\n", "display(df.describe())\n", "\n", "print(\"\\nПроверка на наличие пустых значений:\")\n", "print(df.isnull().sum())\n", "\n", "\n", "print(\"\\nЗапуск процесса анализа строк (имитация)...\")\n", "for index, row in tqdm(df.iterrows(), total=df.shape[0], desc=\"Анализ базы фильмов\"):\n", " time.sleep(0.001)\n", "\n", "sns.set_style(\"whitegrid\")\n", "plt.rcParams['figure.facecolor'] = 'white'\n", "\n", "plt.figure(figsize=(10, 6))\n", "sns.histplot(df[\"vote_average\"], bins=15, kde=True, color=\"teal\", alpha=0.6)\n", "plt.title(\"Распределение средних рейтингов фильмов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Средний рейтинг (0-10)\", fontsize=12)\n", "plt.ylabel(\"Количество фильмов\", fontsize=12)\n", "plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.5)\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 7))\n", "scatter = sns.scatterplot(\n", " data=df, \n", " x=\"popularity\", \n", " y=\"vote_average\", \n", " hue=\"vote_count\", \n", " size=\"vote_count\", \n", " palette=\"viridis\", \n", " sizes=(20, 200), \n", " alpha=0.6\n", ")\n", "plt.title(\"Зависимость рейтинга от популярности и числа голосов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Популярность\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.legend(title=\"Кол-во голосов\", bbox_to_anchor=(1.05, 1), loc='upper left')\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 6))\n", "df['vote_group'] = pd.qcut(df['vote_count'], q=4, labels=['Низкое', 'Среднее', 'Высокое', 'Топ'])\n", "\n", "sns.boxplot(x=\"vote_group\", y=\"vote_average\", data=df, palette=\"Set3\")\n", "plt.title(\"Разброс рейтингов по категориям активности зрителей\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Количество проголосовавших (группы)\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.show()\n", "\n", "print(\"\\n=== ЗАДАНИЕ ВЫПОЛНЕНО С УСПЕХОМ ===\")" ] }, { "cell_type": "code", "execution_count": 3, "id": "f723e696-5e99-4878-9e5b-040b1be69615", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\n", "\n", "Размерность таблицы: (25, 5)\n", "\n", "Первые 5 строк:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
titlepopularityvote_averagevote_countrelease_year
0The Shawshank Redemption85.58.7210001994
1The Godfather70.28.7160001972
2The Dark Knight92.18.5270002008
3Inception120.48.3310002010
4Pulp Fiction65.88.5230001994
\n", "
" ], "text/plain": [ " title popularity vote_average vote_count \\\n", "0 The Shawshank Redemption 85.5 8.7 21000 \n", "1 The Godfather 70.2 8.7 16000 \n", "2 The Dark Knight 92.1 8.5 27000 \n", "3 Inception 120.4 8.3 31000 \n", "4 Pulp Fiction 65.8 8.5 23000 \n", "\n", " release_year \n", "0 1994 \n", "1 1972 \n", "2 2008 \n", "3 2010 \n", "4 1994 " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Информация о типах данных и пропусках:\n", "\n", "RangeIndex: 25 entries, 0 to 24\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 title 25 non-null str \n", " 1 popularity 25 non-null float64\n", " 2 vote_average 25 non-null float64\n", " 3 vote_count 25 non-null int64 \n", " 4 release_year 25 non-null int64 \n", "dtypes: float64(2), int64(2), str(1)\n", "memory usage: 1.1 KB\n", "\n", "Описательная статистика числовых признаков:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
popularityvote_averagevote_countrelease_year
count25.00000025.00000025.00000025.000000
mean91.8280008.26800018880.0000002002.560000
std70.0813310.2688255666.56862713.073765
min28.4000007.50000010000.0000001972.000000
25%42.5000008.20000014000.0000001994.000000
50%70.2000008.30000019000.0000002000.000000
75%110.1000008.50000023000.0000002014.000000
max310.5000008.70000031000.0000002021.000000
\n", "
" ], "text/plain": [ " popularity vote_average vote_count release_year\n", "count 25.000000 25.000000 25.000000 25.000000\n", "mean 91.828000 8.268000 18880.000000 2002.560000\n", "std 70.081331 0.268825 5666.568627 13.073765\n", "min 28.400000 7.500000 10000.000000 1972.000000\n", "25% 42.500000 8.200000 14000.000000 1994.000000\n", "50% 70.200000 8.300000 19000.000000 2000.000000\n", "75% 110.100000 8.500000 23000.000000 2014.000000\n", "max 310.500000 8.700000 31000.000000 2021.000000" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Проверка на наличие пустых значений:\n", "title 0\n", "popularity 0\n", "vote_average 0\n", "vote_count 0\n", "release_year 0\n", "dtype: int64\n", "\n", "Запуск процесса анализа строк (имитация)...\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3136e9472e7b4470b45c499dfa78f82b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Анализ базы фильмов: 0%| | 0/25 [00:00" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABIkAAAJxCAYAAADGo+IWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlPBJREFUeJzs3Qd4W+XZxvHbe494Jo6zCNkJmQQoUCAQ9gyr0DLK3i0F2gYoZdNC2ZRVWkZZLTTMUqCMsmd2CAnZy7ET78R76Luel09GdrwjW7L9/12XLls650ivjo6OdG6973NCPB6PRwAAAAAAAOjTQgPdAAAAAAAAAAQeIREAAAAAAAAIiQAAAAAAAEBIBAAAAAAAAEIiAAAAAAAAEBIBAAAAAADAoXA1AAAAAAAACIkAAAAAAABASAQAAAAAAABCIqBvWLx4sa666irNnDlTu+22myZPnqyjjjpK99xzj7Zv3x7o5qEX+s9//uO2s/r6+obbfvSjH+mFF14IaLsAAAAAtCy8lWkAeoE333xTV155pWpqahrd/t1337nLW2+9peeee07JyckBayN6nz322EMhISF66qmndOqpp+rll192geQ+++wT6KYBAAAAaEGIx+PxtDQRQM9WUVGh/fffX8XFxQoLC3O9iez61q1b9Yc//EHffPONm++ss87Sb37zm0A3F73MO++8o9mzZ6u0tFRxcXG68cYbdeSRRwa6WQAAAABaQEgE9GJ2cG49iebPn68BAwbosssua5i2YMECnXzyye7/H//4x/rLX/4SwJait6qtrVVubq4yMzMVERER6OYAAAAAaAXDzYBeLDExUSeddJK7NNfLyGv06NGNpq1cuVIPPfSQ5s6dq/z8fEVHR2vw4ME65phjdNpppyk0NNTNd//99+uBBx7Y4b4tDEhPT3fh0y9/+Uv169fP3f7b3/5WL730kvt/+fLlDfN/9tlnOvPMM93/06dP19///vdGQdcjjzzieqXk5OQoISFBI0aMcL2f9ttvv4b5rF1ffvmlBg4cqPfee6/hdquBc+2117r/jzvuONeDqmnbk5KS9PHHHysyMrJhuTfeeEOXX355w/V3331X2dnZ7n+rs/Piiy9qzpw5bl1ZEDJ06FAdffTR+tnPftbofsyiRYv06KOPuvVpQ64yMjK0995764ILLlBWVpa++OILnX766WqN93nZ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ao0VkL7kkku0ceNG/f3vf9eIESMaTZ84caLmzp3bcN2Gny1dutTdbjWHJkyY0Gi6FbS2ukSjR4/WmDFj3P92m5fNa8vYst2B4WYAAAAAACAo2WnuZ531Y1ek2moQ2RCz1noYdbUXX3zRnfL+oYcecr17rKePiYiIcD2Fjj/+eP31r3/Vo48+6k5z/+c//9kVurYzpXkLYl933XUaOXKkK2B9/fXX66STTmoYrnbssce622699VZt2bJFf/vb35o9m1pXISQCAAAAAABBywKhQIVCTb311luuN9H555/f6Pbp06e7nkUWCN1///0u5LGAyE5nb39DQkLcfEcccYQ2bdrkgiKrN3TwwQfrqquuarif2bNnu5DojDPOUHx8vCuMbfN0F0IiAAAAAACAFixfvrzhf+sl1Jb99tvPXVpy3nnnuUtzrEfRH//4R3cJBGoSAQAAAAAAgJAIAAAAAAAAhEQAAAAAAAAgJAIAAAAAAAAhEQAAAAAAABwKVwMAAAAAAICQCAAAAAAAAIREAAAAAAAAkBTOWgAAAAAAAMGqtq5eRSVl7m94WKj6JcW5v/A/1ioAAAAAAAg6Fgqt2pivV/+3WE+9/pWeeO1L99eu2+02vatVV1fryCOP1BdffNFwW05Ojs4991xNnDhRM2fO1BtvvNFomddff10HHXSQm37xxRersLCwYZrH49Gf/vQn7bnnnpo+fbpuv/121df/8DyKiop06aWXavLkyZoxY4ZeeeUVdSdCIgAAAAAAEFQsAJq/bINefGeBlq/bouraOne7/bXrdrtN78qgqKqqSr/61a+0YsWKH9pVW6vzzz9f4eHheumll3T22Wfr17/+tb777js3fdGiRbrmmmt0ySWX6B//+IdKS0s1e/bshuUff/xxFyI98MADuu+++/Taa6+527xs3m3btrllL7zwQl177bXuPrsLw80AAAAAAEBQWbe5UO99tUL19Z5mp9vtNj0lKU7Ds9P8/vgrV67UFVdc4Xr++Prggw+0efNmPffcc4qPj9cuu+yiDz/8UPPnz9fIkSP19NNP67DDDtOxxx7r5reeQgcccIA2bNigQYMG6amnntJll12madOmuelXXnml7r33Xhc2rV+/Xu+//77effddZWdnu/tbsGCBnn32We22227qDvQkAgAAAAAAQcN6By1cvqnFgMjLptt8XdGb6Msv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zfvmm2+quxASAQAAAACAoGBhytfN9B5qic1nQ9K8IYw/rF69WgsWLHC9h0aMGOF69Vho9Prrr+vzzz93PYMs5Bk+fLjOP/9816PIAiPzwgsvaPz48TrrrLPcsnYfmzZt0pdffummP/XUUzrjjDN0wAEHaLfddtMNN9zglrVAqry83C1/zTXXaNy4cZo5c6bOOeccF1R1F0IiAAAAAAAQFKxI9bd5HRtCZjWLbDl/SU9P12OPPeZ6C/navn276/kzduxYxcbGNtw+depUFyoZm26hkldMTIwLfGx6XV2dFi9e3Gi6BUw1NTVatmyZu9TW1rphaL73bfdZX1+v7kBIBAAAAAAAgoKdxay9vYi8bH5bzl8SExNdzSAvC2iefvpp7bnnntq6dasyMjIazZ+amqrc3Fz3f2vTS0tLXc0h3+nh4eFKTk52023Zfv36KTIysmG6BVW2THFxsboDIREAAAAAAAgKdpr77lyuPe644w4tXbpUl19+uRsW5hviGLteXV3t/m9temVlZcP15qa3tKzx3n9XIyQCAAAAAABBITw0tFuXa09A9OSTT7q/I0eOVFRU1A6BjV2Pjo52/7c03Yad2TTv9ZamNzfNeO+/qxESAQAAAACAoJAaG6vo8PAOLWPz23L+dtNNN+nxxx93AdEhhxzibsvMzFR+fn6j+ey6dwhZS9OtzpENK7MgyHe61SCyoWQ23ZYtKipyt3nZEDQLiGwIXHcgJAIAAAAAAEGhf0K8xmY2runTFpvflvOnBx54QM8//7zuuusuHXHEEQ23T5w4Ud98803D0DEzd+5cd7t3ul33siFkNlTNbg8NDdWECRMaTbeC1laXaPTo0RozZoz731sE23vftowt2x0IiQAAAAAAQFAICQnR1IFZ7e5NZPPZ/Lacv6xatUoPPvigzj33XHd2MevN471Mnz5dAwYM0OzZs7VixQo9+uijWrRokU444QS37PHHH6958+a52226zZedna099tjDTT/11FP117/+Ve+8845b7vrrr9dJJ53khpvZ5dhjj3W32TSb529/+5tOP/10dZeO9eECAAAAAADoQkP69dOsCeM0Z/E3rZ7pzAIim8/m96d3333Xna7+oYcechdfy5cvdwHSNddco1mzZmnIkCH685//rKysLDfdAqH7779ft956q7vdTmdvf70hlvVK2rRpk6677jpX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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\timsh\\AppData\\Local\\Temp\\ipykernel_24936\\2834083930.py:64: FutureWarning: \n", "\n", "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n", "\n", " sns.boxplot(x=\"vote_group\", y=\"vote_average\", data=df, palette=\"Set3\")\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+cAAAIkCAYAAAB89VoSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXt9JREFUeJzt3Qm8pXPhP/Cv2Yxl0NjHXkKyJUQoxhqRZCllTVmiCIWQ7BWREklZWlQ0ln4tlhQlPxSTUci+b2MNMczM//V5/v/n/s+9c+/MvTN37jNz7/v9ep3Xvfecc5/zPc9yzvP5bs8ckydPnlwAAACAxgxq7qUBAACAEM4BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzmGAOvzww8uKK67Y7vaud72rrLbaauWDH/xg+fKXv1weffTRmV6ON998s1xyySVlr732Kuuvv35ZZZVV2pXpmGOOmellmF08//zz1Tq544472u77whe+UA477LBGywXAwHPeeeeVrbbaqu3v1157ray00krlpptuarRcMDsTzoE2kyZNKm+88UZ56qmnyuWXX1522WWX8uSTT860NTRhwoTy6U9/uhx11FHlxhtvLOPHj6/Cem3JJZesysD/NXLkyLL66quXH/3oR9VJ0Lhx48oNN9xQNtlkE6sIgD6VivyHHnqoXH311dW5w7nnntv2PQVMnyHT+X9AP/KLX/yiLLbYYlUwThj/1re+VW6//fbyzDPPlO9973vl+OOPnymve+GFF5abb765LLzwwmX//fcva665ZplvvvnK4MGDyzzzzFPmnXfemfK6s7OTTz65HHjggeU973lPGTRoUNltt93Klltu2XSxABhg3vnOd5ajjz66HHrooVU4X3DBBctpp51W5p577qaLBrOtOSZPnjy56UIAzXRrv+yyy6rf//CHP1St1LWE8o022qhMnDixLLHEEuW6666bKWVIqEyte1rp0xWO7kslSioyUokBAE1JL7icNyy++OJV5Tow/bScA1NYZJFFytve9raqm/mzzz7b7gv4Bz/4Qfnd735XnnjiifLWW2+VhRZaqLz//e+vWnMXXXTRtuema3xa3dPtOmOl0zr+gQ98oHzuc5+r/ufll18uDz74YNX9Lf+XseV//OMfy4svvliWWmqpsuOOO1atwq1f9HWFwogRI8rvf//78s1vfrP86U9/qsr13ve+t6q97xjy89iPf/zj8j//8z9VRUCssMIK1fI/9rGPlTnmmKPd8//yl7+U888/vxrXnf9Nj4J0G//MZz5TrZOpGT16dHn88cer5++3335VC8I//vGPMuecc5ZNN920fPGLX6y6/LXK+sk6vfPOO9taIj71qU+Vbbfdtt3zMtY8PvrRj5ZTTjmlOgmKjDe/8sor21rVt99++7bnTk0qZFLWrOPW/420gOT16/VVV96kl0P9/AMOOKDa5rVdd9213HLLLdXv99xzT/XzO9/5Tvnud7/b6eufddZZ1TrJUIpLL720jBkzptx3333VPrXssstWr5/1MGzYsE4rlFrlOdlOm2++efn85z9fre+uTK1MtY7vraf70NRe86KLLirve9/7yt13312OPPLIal1l6MZXvvKV6vHrr7++2v/uvffe8tJLL1WVLyuvvHLZY489qi6krfvZ1NSvk/X7k5/8pJrXIWWfa665qh4q6amS+SVqWf9HHHFEp8vK/Xn9yHH385//vNx1113V0Iocq1tssUU1PKW1p0vre84x+sMf/rD63HjllVfKu9/97nLQQQeVddZZp9Pnt1YW3n///WW77bartkFrRWEqDs8444xqmQkF2Wc7at2nW/fPfA7lmGv11a9+tXpf0Z0KyWybc845p3re008/3fa5ufHGG1efcak467he6/KkYi3H7dixY6uy5Lmd7ded7ZP1ts+6yz5Zy7o4++yz2z234/tulf0gnyH5PMlnW70P158dHZff2T5cy/CaCy64oHqdF154oWo93WCDDcq+++5b7R+t8rn//e9/v1x77bXVd0g+y/OZlzlHerp/ZzvVQ3pa33PanPK+b7311k7L21H2rYydzvGd102ZcmxkeZmHpVavm3wGpqxZJzkO5p9//vLhD3+4+uzJeu3qM7s2I5/ZOS6yr2f//fWvf12VN/vPuuuuW62Dt7/97e3+p6vPzFYdP/u7s+zW/bpevynbc889V41Bz/d463cB0H3COTCFnGzmJCtyolVL+L3qqqvaPTdf4Dnxz4nQb3/72ypMJ9TvvPPOVUCvPfbYY+VnP/tZ+fvf/16dLNQnXwmrH//4x9tCT31CnpOZPPfMM8+sum+3Svf7T37yk+3+589//nP1/ASRnPzHq6++Wp2k/fOf/2z3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p53K3Xff3adlBQAAgH4Zzg866KAy99xzlzFjxpQjjzyynHHGGeWaa66Z4nmPPvpo+cxnPlM222yzcsUVV5QVV1yx7L///mXChAmNlBsAAAD6RTh/6aWXytixY8t+++1Xll122bLpppuWDTfcsNx0001TPPcnP/lJWW211coBBxxQPTdBftCgQeWBBx5opOwAAADQL8L58OHDy1xzzVW1mr/55ptV0L7tttvKu971rk67tG+++eZtf+f/rr322rLSSiv1cakBAACgdw0pDZpzzjnLMcccU44//vhy0UUXlYkTJ5btt9++7Ljjjp12a0+Y//znP1/+9re/leWXX7763/zsqbwOAMBANWnSpLafzosAZq7ufs42Gs7j/vvvLxtvvHHZc889y7333lsF9fXWW69su+227Z732muvlVNPPbXq1p4J5BLm99hjj3LVVVeVeeaZp0evOW7cuF5+FwAAs4/x48dXP++5557y3HPPNV0cAJoO5xlbfumll5brr7++ahVfddVVy9NPP13OPvvsKcL54MGDq9ncd9111+rvhPiNNtqoXHfddWWbbbbp0evmdbI8AICBKD0SIxPsLrXUUk0XB6Dft5x3p4G40XB+5513lmWWWaYK5rWVV165nHPOOVM8d+GFFy7LLbdc29/Dhg0rSyyxRHUptp5KMBfOAYCBKpPq1j+dEwHMGhqdEG6RRRYpDz/8cLvLoWVSuCWXXHKK566xxhpV16ta/ie1vp09FwAAAGYnjYbzdFMfOnRoOeqoo8qDDz5YdVFPq3m6rqfp/9lnn20L7rvvvns1vvxnP/tZeeihh8pxxx1XTSiXru0AAAAwO2s0nI8YMaJccMEFVQjfYYcdysknn1xd83znnXeuuqtvsMEG5fbbb6+eu/rqq5czzjijmgguY8wzkdx5551X5p577ibfAgAAAMywxmdrz6XQzj///CnuT3f11m7ssemmm1Y3AAAA6E8abTkHAAAAhHMAAABonJZzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaNiQpgvQnzz88MPl6aefLrOb//znP2XChAlNF2NAGTZsWBkxYkSZHS266KJlmWWWaboYQD/z/PPPl1deeaXpYgwYTz31VLuf9I155523jBw50uruQ+PHjy+vvfaadd6H5p577rLQQgtZ59NBOO/Fk4pTTz21TJo0qbcWCbOkQYMGla997WtOLoBe/Q497rjjyptvvmmt9rELL7zQOu9DQ4cOLcccc4zv0D6SCr9jjz22TJ48ua9ekv93rnjyySdXlVH0jHDeiwd/gvki71mlDJt3njI7eev118uktyY2XYwBZdCQwWXI8OFldjPhlVfLM7ffWe3vav6B3pLPlATz962zWZlvxNusWPqll//zQrn5lmt8h/ahhMOE89mt5Tw9WlJxtvvuu5fFFluszI4t54L59BHOe9mIJRcvcy2ouxL903+fe74K5wAzQ4L5yLctYuUCvWZ27l6dYL700ks3XQz6kAnhAAAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICBHs6ffPLJss8++5Q111yzjB49ulxwwQXT/J9//OMf5V3veld57LHH+qSMAAAAMDMNKQ076KCDyqhRo8qYMWPKfffdVw499NCyxBJLlM0226zT57/55pvlqKOOKpMmTerzsgIAAEC/azl/6aWXytixY8t+++1Xll122bLpppuWDTfcsNx0001d/s95551X5p133j4tJwAAAPTbcD58+PAy11xzVa3maRF/4IEHym233VZ1We/Mgw8+WH7605+Www8/vM/LCgAAAP2yW/ucc85ZjjnmmHL88ceXiy66qEycOLFsv/32Zccdd5ziuZMnT66ee+CBB5YFF1xwhl43r9PbdLNnIMn+PjOOI2Bg8h3KQOI7lO7sI/aV/qW7582Njzm///77y8Ybb1z23HPPcu+991ZBfb311ivbbrttu+ddeumlVev6TjvtVB5//PEZes1x48aV3jZ+/PheXybMqu65557y3HPPNV0MoJ/wHcpA4juU7n4m2lcGnkbDecaWJ3Rff/31VRf3VVddtTz99NPl7LPPbhfOn3322XL66adXM7nPMcccM/y6eZ3BgweX3vToo4/26vJgVrbiiiuWpZZaquliAP2E71AGEt+hdPcz0b7Sv1rOu9NA3Gg4v/POO8syyyxTBfPayiuvXM4555x2z/vLX/5SXnjhhbLzzju3dXGPD3/4w2Xfffetbj2RYN7b4XzQoMavSgd9Jvt7bx9DwMDlO5SBxHco3dlH7CsDU6PhfJFFFikPP/xwmTBhQhk2bFh1XyaFW3LJJds9L5dVy3XQa2ld33XXXcu5555bVlhhhT4vNwAAAPSmRpt7R48eXYYOHVpdtzwzsV933XVVq3mCd5r+0509wT2XTksLe33LddEjPxdYYIEm3wIAAADM3uF8xIgR1TjyhPAddtihnHzyydU1z9N9/cknnywbbLBBuf3225ssIgAAAMx0jc/Wvvzyy5fzzz9/ivvTtT0zFHZmao8BAADA7KbxcA4AAMy6nn/++fLKK680XYwB46mnnmr3k76RodQjR44sTRLOAQCALoP58ccdVya8+aY11McuvPBC67wPDRs6tBx9zDGNBnThHAAA6FRazBPMt190gbLQUNGB/mn8m2+VMU+/WO3vwjkAADDLSjAfNXxo08WAfq3R2doBAAAA4RwAAAAap+UcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGFDmi4AAEC8/PILVgT91uy+f4+f8FbTRYB+v38L5wDALOHmW69pughAF8Y886J1AzOZcA4AzBLet/ZmZb753tZ0MWCmtZzPzhVQ2y+yQFlomOhA/205HzMLVEA5wgCAWUKC+ci3LdJ0MYBOJJiPGj7UuoGZyIRwAAAA0DDhHAAAAGa3cH7EEUeURx99dOaUBgAAAAagHofzyy67rLzwwux9KQgAAACYlejWDgAAALPjbO3PPvtseeKJJ7p8fNSoUTNSJgAAABhQpiucH3DAAVN9/K677pre8gAAAMCA0+NwfvLJJ8+ckgAAAMAA1eNw/tGPfnTmlAQAAAAGqB6H88svv3yaz9luu+2mtzwAAAAw4PQ4nB9++OHt/p5jjjnK5MmT2/0tnAMAAMBMDOd/+MMf2n6fOHFi2Xzzzcs555xT3vnOd/Z0UQAAAMD0hPMllliiXTiPhRdeuN39AAAAwEy+lBpde+PFl60e+i37NwAAzMLhPOPMB7p55523DB06tDz255ubLgrMVNnPs78DAAANhvPRo0dPEcb33Xff6oQ98ti1115bBpqRI0eWY445przyyitNF2XAeOqpp8qFF15Ydt9997LYYos1XZwBI8E8+zsAANBgOF9nnXW0lHchgUVo6XsJ5ksvvXQDrwwAANBQOD/llFN66aUBAACA6QrnTzzxxDSfM2rUKGsXAAAA+nLMeUd33XVXTxcLAAAAA1aPw/kaa6xRxo4dW1ZZZZWy8847lyFDXI0NAAAAZkSPk/XPf/7zcvnll5fTTjut/PjHPy5HH310WXvttWeoEAAAADCQTVez93bbbVc233zzctZZZ5W99tqrbLbZZuXLX/5yWXTRRXu/hAAAQKPGv/mWLUC/NX4W2b+nu0/63HPPXQ477LCy0047lZNOOqlsueWWZZ999qnC+rBhw3q3lAAAQJ+bd955y7ChQ8uYp1+09unXhg0dWu3vs1U4/+53vzvFfauuump54YUXyre//e0yZsyYcvXVV/dW+QAAgIaMHDmyHH3MMeWVV16xDfrIU089VS688MKy++67l8UWW8x67yMJ5tnfZ/tw3uqRRx6ZkfIAAACzkASWpkPLQJRgvvTSSzddDGblcH733XfPnJIAAADAADWop/9wxBFHlEcffbTXCvDkk09WY9XXXHPN6hrqF1xwQZfP/dWvflWNbX/Pe95Tdtxxx/L3v/+918oBAAAAs004v+yyy6rx5b3loIMOqiaXy1j1I488spxxxhnlmmuumeJ5N9xwQznuuOPK/vvvX13Kbf311y+f/exny9NPP91rZQEAAIDZIpz3ppdeeqmMHTu27LfffmXZZZctm266adlwww3LTTfd1GmlQC7htu2225ZlllmmCvULLbRQuf766xspOwAAADR6KbXPfe5zXV4ubY455ijXXnttt5YzfPjwMtdcc1Wt5occckjVXf62226rgndHe++9d5lnnnmmuP8///nPdLwDAAAAmM3D+corr9wrMzbOOeec5ZhjjinHH398ueiii8rEiRPL9ttvX40n7+jd7373FN3cH3roobLuuuv2+HXzOsz+Jk2a1PbTNmVaHn744fLss8/OlisqlZATJkxouhgDSiqgR4wYUWY3Cy+8cNW7bHb9PH/5P703bA5mNfX+7bylb40fP77897//LbOTethu5uaqPx9nJ2l8TQ9n/r/uZpXpbjlfbbXVSm+4//77y8Ybb1z23HPPcu+991ZBfb311qu6r0/tcm2ZmG6bbbaZIrR3x7hx42aw1MwqH7Zxzz33lOeee67p4jALy7VZL7nkkjJ58uSmiwIzVXqvpYI712qd3Y7RIUOGlJtvmXLOGehPsp+nsth5S994/fXXy8UXXzzbfv+n8XJ2/S76xCc+UfWSpmemK5z3lowtv/TSS6tx49l4q666alVTdPbZZ3cZzh988MEqyC+11FLlhBNOmK7XzesMHjx4BktP0+qrBqy44orV/gBT21fyxbzllu8qI0dOOTxmVvef/7xR3nzzraaLMaAMHTqkjBgxZ9PF6JHnn3+1/P73d1Ut57PjZ2J65b366qtNF2PAyPlWTvx32223suiiizZdnAEjQzRdL7xvLb/88rNdy/nsTst55y3n3Wkg7nE4P/nkk3vtS//OO++sTiJaa1Xy5XzOOed0+vy0rO+xxx7V65933nnTXRuTYC6cz/4GDRrU9tP2pDv7ykorLVaWXPJtVhb90mOPvVCF89n1MzFd8nOjbz8XF1988bL00ktb7fRbKp+YnfQ4nC+55JLlvvvum+pz1l577W4ta5FFFqm69mQsZT3B3AMPPFC9RkfPPPNM2Wuvvaow/4Mf/KDTyeEAAACg34bzF198sSywwALV77vuums1jiDq8Rutf+f3u+66q1svPnr06PLNb36zHHXUUdXl1NJlPa3mBx98cNX0//zzz5f555+/Cu5f//rXqwkRTjzxxPLaa69Vt8g10gV1AAAA+n0432yzzcruu+9eDjjggLLVVluV3/72t2WVVVapJoabkWCcmXAvuOCCKnDvsMMO1RichPSdd965PP7442WTTTapxkOts8461eXZMqnDlltu2W4ZKdOBBx443WUAAACA2SKc//jHP64ucZZZ9771rW+VXXbZpQrURx99dDn00EPLdtttN0OTNJx//vlT3J+u7ZmFu/aPf/xjul8DAAAAZmX/dzaQach16tKlPJc6ibXWWquMGTOm7L///uWUU06pWrr/+c9/zuyyAgAAwMAN5xkTnlnUMxlbLWPL04J+1VVXVdca//jHP161pGecOAAAANDL3drXX3/98tGPfrT6/Ygjjuj0OSussEK55JJLytVXX11uvvnmHhQBAAAABrZuhfPM0F6bWvAeNWpU75QKAAAABpAeX+f8uuuumzklAQAAgAGqW2POO5MJ4u6+++5yww03VBPF5VroAAAAQB+0nMcVV1xRTjvttPLMM89UE8Ndeuml5Tvf+U4ZOnRodf+wYcOmZ7EAAAAwIPW45fy3v/1t+fKXv1zWXXfdcvrpp5fJkydX92+22Wbl+uuvL9/73vdmRjkBAACg3+pxy/k555xTXTbt2GOPLRMnTmy7/2Mf+1h1GbVf/vKX5aCDDurtcgIAAEC/1eOW8wcffLBqJe/M6quvXp5++uneKBcAAAAMGD0O5wsuuGC5//77O30s9+dxAAAAYCaG86222qqceeaZ5fe//32ZMGFCdV8mhbvzzjur8eZbbrllTxcJAAAAA1qPx5xnPPm///3v6uegQf832++6667ltddeK2uttVb5whe+MDPKCQAAAP1Wj8N5LpN23nnnlRtvvLHcdNNN5aWXXiojRowo66yzTvngBz9YtaIDAAAAM/k657H++uuXtddeu7z88stl/vnnr65xDgAAAPRROL/hhhuq8eV33HFHdZ3zwYMHl/e+971Vl/Y111xzehYJAAAAA1aPw/lVV11VjTdfaaWVygEHHFDNzv7ss8+Wa665puy2227lggsuqMaeAwAAADMpnJ911llliy22KGeccUa7+xPUDzzwwHLaaaeViy++uKeLBQAAgAGrx5dSe/jhh8sOO+zQ6WM77bRTueuuu3qjXAAAADBg9Dicv+Md7yjjxo3r9LEHH3ywLLnkkr1RLgAAABgwetyt/dhjjy377rtvdcm07bbbriyyyCLlxRdfLNdee20588wzq8efeOKJtuePGjWqt8sMAAAAAzucp+t6ZMz5t7/97bb7M2t7HHbYYe2er5s7AAAA9HI4P+mkk6pWcwAAAKChcL799tv30ksDAAAA0zUhHAAAANC7hHMAAABomHAOAAAAs9uYc4DZ1TPP/KfpIsBMY/8GgNmbcA70e/POO28ZNmxo+dnP/tZ0UWCmyn6e/R0AGADhfLfddpvq47nM2oUXXjgjZQLoVSNHjixHH31MeeWVV6zZPvLUU09V3wW77757WWyxxaz3PpJgnv0dAOin4fyEE04on/70p8viiy9e/v73v5dJkyaV5ZZbriy44IJTPHfy5Mkzo5wAMySBRWjpewnmSy+9dAOvDADQD8P5m2++WT71qU+Vq666qlx++eXlxBNPLHfccUd1zfM99tijDBmidzwAAADM1NnaDzvssPL444+XRx55pLzzne8sF1xwQTn55JPLxRdfXD784Q+XP//5z9NdAAAAABjouhXOb7vttjJ06NCy8MILt923xRZblN/97ndVOD/wwAPLfvvtVx599NGZWVYAAAAYuOH8y1/+cvna175WRowYUZ544om22/jx46uu7eedd1557rnnytZbb11OP/30mV9qAAAA6Ee6NVj8pptuavt99OjR1YzsXU0Ed+6555aDDz64N8sIAAAA/VqPZ3I76aSTOg3nAAAAQB+F83RjBwAAABoM57mU2rRst91201seAAAAGHB6HM4PP/zwtm7t9TjzVnlMOAcAAICZGM4/85nPlAsvvLCssMIK1Szuo0aN6ukiAAAAgJ5eSq3VIYccUn7zm9+UhRZaqArql112WXX98yWWWKLtBgAAAMzEcB5LLbVUOeecc8qZZ55ZBfUPfehD5ZprrpmeRQEAAMCAN13hvPaBD3yg/PrXvy677LJLOeKII8pee+1V7r///gG/UgEAAGCmjjnfbbfdOr1/0UUXLX/961+ryeDGjRvX08UCAADAgNXjcN7ZDO0xcuTI6gYAAADM5HD+4x//uKf/AgAAAMysMecAAABAAy3nK620Upljjjm6fDyP/etf/5rRcgEAAMCA0eNw/rnPfa4tnE+cOLGcffbZZaeddiqLLLLIzCgfAAAA9Hs9DucHHnhg2+91ON95553Lu9/97t4uGwAAAAwIxpwDAABAw4RzAAAAmN26tX/3u99td83zjD//xS9+0TbmPH9nXDoAAADQB+G89stf/rLtd+EcAAAAZnI4v/vuu3v6LwAAAEBvhvOpeeGFF8r111/f9vfb3va28sEPfrA3XwIAAAD6nR6H88svv7zLxx555JHq0mqLL7549XcuryacAwAAQC+H88MPP7waV57J4DqTx6677rpuL+/JJ58sxx57bLn11lvLAgssUHbbbbeyxx57dPrcv/71r+Wkk04qjz76aFl99dXLiSeeWJZaaqmevgUAAACY/bu1f+c73ynvete7prj/X//6V/n85z/fo2UddNBBZdSoUWXMmDHlvvvuK4ceemhZYoklymabbdbueU888UQ1C/yBBx5YNtxww3LWWWeV/fffv1x55ZVVhQAAAAAMqHCey6YlQHc0fvz4Hi3npZdeKmPHji3HH398WXbZZatbgvdNN900RTi/5JJLyiqrrFL22muv6u+TTz65rL/++uWWW24p73vf+6bnbQAAAMAsYVCTLz58+PAy11xzVa3mb775ZnnggQfKbbfd1mmr/D/+8Y+y1lprtf2d/8uY9oR7AAAAGHAt5wnTCdEjRoyoWtBXXHHFamb2nppzzjnLMcccU7WcX3TRRWXixIll++23LzvuuOMUz3322WerFvtWCy64YHnqqad6/Lp5HWZ/kyZNavtpm9KfpVfSf//73zI7efrpp9vmFamP1dlJKoAXWmihposBM43vUIC+092s0uNwvvXWW5fnnnuumpQtwThjwd94442y0korlXXWWafHBb3//vvLxhtvXPbcc89y7733VkF9vfXWK9tuu2275+XEdNiwYe3uy98TJkzo8WuOGzeux//DrKceRnHPPfdU+yT0R6+//nq5+OKLu5yEc1aXitfZUeYy+cQnPlH18IL+yHcowKynx+H8tNNO63QiuD/96U/lZz/7WbvLrU3rOucZW37ppZdW10bPCdCqq65atbbkcmwdw3la2TsG8fw933zz9fQtVK8zePDgHv8fs5ZUEEV6bpi1n/5s+eWXn+1azmd3Ws7p73yHAvRty3l3Goinq1t7RyuvvHJ1SxDPbOpnnnlmt65zfuedd5ZlllmmXctElnPOOedM8dxFF110ignn8ndn49OnJcFcOJ/9DRo0qO2n7Ul/ls8/gN7kOxRg1jNd4Twt1mnxznXHMxY81x7PrOkJ4z25xnnGkD/88MPV8uou65kUbskll5ziubmu+d///ve2v9OKlBb7Aw44YHreAgAAAMy+s7U///zz5WMf+1g58cQTq2B9xx13VGMi06191113Lbfffnu3lzV69OgydOjQctRRR5UHH3ywCvZpNc9y0vSf4F93Zc9rZhK6c889txqbfsQRR1Qh3mXUAAAAGHDh/Bvf+EZ59dVXy29/+9ty2WWXtU1SlK7sGctdd2nvjsz2fsEFF1QhfIcddqiuXb7ffvuVnXfeuZrhd4MNNmgL+wni3/nOd8qvfvWr6rkvvvhiOeuss6pJewAAAGBAdWv/4x//WI488shqrHjrlPCZsG2vvfYqhx9+eI8nOjr//POnuD9hPLNwt8r49amNYQcAAIAB0XKey6YtsMACnT6WSbnefPPN3igXAAAADBg9Dufpul5fMq2jX//612WVVVbpjXIBAADAgNHjbu1f+MIXyh577FE+8pGPVF3MM+b7f/7nf6rx4H/5y1/KeeedN3NKCgAAAP1Uj1vO11prrWqM+FxzzVUF8UwIV0/q9v3vf7+su+66M6ekAAAA0E9N13XO11577fLzn/+8uoTaSy+9VOadd94yzzzz9H7pAAAAYACYrnAe6cJ+6623Vpc0W2ihhcp6661XtaoDAAAAMzmcp6V8n332KWPHji1DhgypZm5PQP/e975XPvCBD1Rjz4cNG9bTxQIAAMCA1eMx5yeddFJ58MEHy3e/+90ybty4qgX9jjvuKN/+9rerwH766afPnJICAABAP9XjcP6nP/2pHHrooWXTTTetZmqvFjJoUNl8883LwQcfXF1ODQAAAJiJ4Tyzs2eMeWcWX3zx8tprr/V0kQAAADCg9Ticf/SjHy1nn312efXVV9vd/9Zbb5Wf/OQn1eMAAADATJwQLtc3f+ihh8omm2xS3RZddNHywgsvlOuvv7489dRTZf755y9HHHFE9dx0e88YdQAAAKAXw/mVV15ZXdc8brrppnaPLbbYYuW2225r+7sekw4AAAD0Yji/7rrrevovAAAAQG+OOX/99denuO+uu+7q6WIAAACAnobze+65p3zsYx8r559/frv7X3755er+j3zkI9X1zwEAAICZEM4fe+yxsttuu5Xx48eX5ZZbrt1jQ4cOLV/60pfKiy++WHbZZZfy9NNP97AIAAAAMLB1K5yfe+65ZYEFFiiXXXZZ2XLLLaeYvX2PPfYol156aZlzzjnL97///ZlVVgAAABi44Tyzsu+9995l5MiRXT5n4YUXLnvttVe58cYbe7N8AAAA0O91K5w/88wzZdlll53m81ZYYYXqWucAAABAL4fztJgnoE/LCy+8UOaff/4evDwAAADQrXC+9tprlzFjxkzzeZdffnlZeeWVrVUAAADo7XC+6667lptvvrmccsop5Y033pji8QkTJpRvfOMb5YYbbiif/OQne/L6AAAAMOAN6c4aWHXVVcsRRxxRTjrppHLFFVeU9dZbryy55JJl4sSJ5YknnqiCe7q0f+ELXygbbrjhgF+pAAAA0OvhPNIivtJKK5Uf/vCH5Q9/+ENbC/o888xTNthgg2qm9tVXX71HLw4AAAD0IJzHe9/73uoWzz//fBkyZEiZb775rEcAAADoq3DeamrXPAcAAAD6IJzTf4wfP7689tprZXbz1FNPtfs5O5l77rnLQgst1HQxAJhBvkP7nu9QoL+aY/LkyZPLAJEJ7MaOHVvWWGONMnjw4KaLM0t45ZVXyuGHH14G0G4wSxg0aFA5+eSTy7zzztt0UQCYTr5Dm+E7FOivOVQ4Z7at9Z+dqfUH6B98h/Y936FAfw3nurWjezUATCdDlADoLYN6bUkAAADAdBHOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAAAzkcD5mzJiy4oorTnFbaaWVOn3+xRdfXDbZZJOy5pprlk9/+tPl0Ucf7fMyAwAAQG8bUhq01VZblQ033LDt77feeqvsvvvuZaONNpriuX/+85/LN7/5zXLaaaeVZZddtnzrW98qn/vc58qVV17Zx6UGAACAfhTOhw8fXt1q3//+98vkyZPLoYceOsVzr7/++rLBBhuUjTfeuPr7gAMOKNtuu215/vnny8iRI/u03AAAANAvx5y/+OKL5Qc/+EE55JBDyrBhw6Z4fIEFFii33npruf/++6sW9ssvv7wsscQSZf7552+kvAAAANAvWs47jidfZJFFypZbbtnp47vuumu56aabqq7wgwcPLnPNNVf56U9/Wv3eUxMnTuyFEgMAAEDv5M9ZIpynK/sll1xS9t577y6f88wzz5Q33nijnHrqqWWZZZYp3/ve98phhx1WLr300jLnnHP26PXGjRvXC6UGAACA3jFLhPOE5aeffrpsvfXWXT7nq1/9atl8883LNttsU/2dieEycdwf/vCHqjW9J1ZdddXpanEHAACAnracd6eBeJYI55mJfa211prq+PF//vOfZd999237e5555qla0B9//PEev16CuXAOAADArGKWmBDujjvuqK5dPjUZj57J4GoTJkwojz32WFlyySX7oIQAAAAw88wSLef33ntvdVm0jk3/uUxaWtMze/uOO+5YzjnnnOoa52kxz2XX0no+evToxsoNAAAA/Sacjx8/vsw333zt7nvyySfLJptsUi666KLyvve9r3z605+u7j/hhBOqy6695z3vKRdccEGPJ4MDAACAWc0ckzNV+gCR1vixY8eWNdZYw5hzAAAAZpkcOkuMOQcAAICBTDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjkAAAA0TDgHAACAhgnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICBHM7HjBlTVlxxxSluK620UqfPv+WWW8pHPvKRsvrqq5eddtqp3H333X1eZgAAAOhX4XyrrbYqf/nLX9puf/rTn8oyyyxTdttttyme++ijj5bPfOYzZbPNNitXXHFFFeL333//MmHChEbKDgAAAP0inA8fPrwsvPDCbbcrr7yyTJ48uRx66KFTPPcnP/lJWW211coBBxxQll122XLkkUeWQYMGlQceeKCRsgMAAEBvGVJmES+++GL5wQ9+UE444YQybNiwTru0b7/99m1/zzXXXOXaa6/t41ICAABAPw7nF198cVlkkUXKlltu2enj6daelvbPf/7z5W9/+1tZfvnlyzHHHFP97KmJEyf2QokBAACgd/LnHJPTj7xhKcImm2xS9t5777LLLrt0+pyVV165jBgxourWvuaaa5aLLrqo3HjjjeWqq64q88wzT7dXytixY3u59AAAADB1a6yxRhk8ePCs3XI+bty48vTTT5ett966y+fkTYwePbrsuuuu1d/HH3982Wijjcp1111Xttlmmx693qqrrjrVlQIAAAC9IY3EybzTMkuE8z//+c9lrbXWKvPPP3+Xz8mEccstt1zb3xmXvsQSS5Qnn3yyx6+XYC6cAwAAMKtodLb22h133FF1VZ9WF4B77rmn7e9cQi3j0Jdccsk+KCEAAAD083B+7733TjGxW5r+n3322bbrmO++++7V+PKf/exn5aGHHirHHXdcmXPOOauu7QAAADA7myXC+fjx48t8883X7r50V99ggw3K7bffXv29+uqrlzPOOKOaCC5jzO+///5y3nnnlbnnnruhUgMAAEDvmCVma+8r9Wzt05olDwAAAPoyh84SLecAAAAwkAnnAAAA0DDhHAAAABomnAMAAEDDhHMAAABomHAOAAAADRPOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhQ5ouAAAAAKVMmjSp3HfffeXll18u8803X1l++eXLoEHaUwcK4RwAAKBhY8eOLWPGjCnPPfdc230LLrhg2X777csaa6zRaNnoG8I5AABAw8H8vPPOK6usskrZc889y+KLL16efPLJctVVV1X377333gL6AKCPBAAAQINd2dNinmD+2c9+tiy33HJl+PDh1c/8nfvzeJ5H/yacAwAANCRjzNOVfYsttphifHn+3nzzzavH8zz6N+EcAACgIZn8LdKVvTOjRo1q9zz6L+EcAACgIZmVPTLGvDNPPPFEu+fRfwnnAAAADcnl0jIreyZ/6ziuPH9fffXV1eN5Hv2bcA4AANCQjCvP5dLuvPPOcu6555YHHnigvP7669XP/J3787jrnfd/c0yePHlyGSAmTpxYXaYg1wkcPHhw08UBAACouM55/9XdHOo65wAAAA1LcFtttdWqWdkz+VvGmKcruxbzgUM4BwAAmAUkiK+wwgpNF4OGGHMOAAAADRPOAQAAoGHCOQAAADRMOAcAAICGCecAAADQMOEcAAAAGiacAwAAQMOEcwAAAGiYcA4AAAANE84BAACgYcI5AAAANEw4BwAAgIYJ5wAAANCwIWUAmTx5cvVz4sSJTRcFAACAAWDi/8ufdR7tyoAK55MmTap+jhs3rumiAAAAMADzaFfmmDyt+N7PVsZbb71VBg0aVOaYY46miwMAAEA/N3ny5CqLDhkypMqiXRlQ4RwAAABmRSaEAwAAgIYJ5wAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgEAAKBhwjl9YvTo0WXMmDFT3J/78hjQt1566aVyyimnVMff6quvXj70oQ+VCy64oEyaNMmmgAatuOKK7W7rrrtuOeqoo8qrr75qu8Bs7vDDD5/iGG+93XzzzU0XkYYNaboAAPStF154oey8885lkUUWKSeeeGJZcskly7hx48rxxx9fHn300XL00UfbJNCg73znO+U973lPVVn25JNPlmOOOaZ84xvfKF/72tdsF5iNfeUrXymHHHJI9ftvf/vb8qMf/ahceumlbY/PP//8DZaOWYFwDjDAnHbaaWXYsGHlhz/8YZlzzjmr+5ZaaqkyfPjwsv/++5dPfepTZbnllmu6mDBg5QR94YUXrn5fdNFFyz777FMFc+EcZm8jRoyobvXvgwcPbjvWIXRrZ5bw2GOPVd158jPeeuutsuWWW5Zdd921+vu///1v+eIXv1jWXHPN8sEPfrBccsklU/xfWhhyArPhhhtWj73xxhvlm9/8ZvX8NdZYo+y7775VC0Qtv+e+dOlN197vfve7ZeLEiY28f+grEyZMKL/5zW/KJz/5ybZgXtt4442rru1LLLFEdVzlONt0002rFrzU9Ld2q/3b3/5Wtt9++7LaaquVbbbZplx11VXtlvWBD3xgiu569fHdcZhLuvHl8dq///3v6tjPsrfYYovy05/+tN2yr7nmmrLVVltVx+4OO+xQbrnlll5fTzArmWuuudr9neMjreudae0a+9prr1Wt7u973/uqW3rF5LtxWt+Rvluh7+U89rzzziubbLJJ9f2X4/yee+5pd2x3vNXnyfQfwjmzpF/96lflwQcfbPv7e9/7XnnggQfKL37xi/LlL3+5OtloDdqRcPDMM8+0dQ/66le/Wp3Ef/3rXy8///nPq8CfVsF8+E2ePLkccMABZcEFFyyXXXZZOfnkk8uvf/3rcs455/T5e4W+9Mgjj1Qn7KuuuuoUj80xxxzV+Na0qse3v/3taqzrRRddVAXmHHfx7LPPVhVhCec5bvbee+9qHF0Cey3H21/+8pfqVlemdcfrr79ePvOZz5T3vve95corr6yO9xz/l19+efX43XffXd233377VY9vu+221fMffvjhXlg7MOt5/vnny49//ONqX++pHL9///vfq2Mo3Wfz+xlnnDHN78hWvluhb5x11lnVcXrkkUdW56apKM/3a76za6mUq79b99prL5umH9KtnT6TE4GMaW2Vk4GO3XnSSp4PqLTi1S11Ofnec889y8iRI6sPqYTr/G/CRN0CkJOPz372s1UXwEx2dcUVV5Qf/OAHVdiIU089tWy00UblxhtvLEOGDClPPPFEFRoGDRpU3v72t1cn/EcccUT53Oc+12frBPrayy+/XP2su9VNTY67HDP1OLmcCBx77LFVS/b73//+qvt7LLPMMuWuu+4qF154YVlrrbWq4zO9UOpju26p646E/VSaHXTQQdXfyy67bHn88cerCoLtttuu6oq/0047Va31sdtuu5Vbb721XHzxxVUFAfQHOfbS3TXHUr4TF1hggerY64l8D/7+978v559/flXZFccdd1x1rE7rO7Ie1uK7FfpGjvWf/OQnVS/RtJxHzpk322yzqiL64x//+BRDXuaee26bpx8Szukzn//858vmm2/e7r6rr766OqlulZPwnODn5KDurjrffPNVPzOJ1dixY6sPq4yRrbvJfvjDH6660eZnPPTQQ1Xtf7q91nJyk2Xef//9VTh/8cUX205YIs9Pq10my3rb2942E9cENCfHQeTkfFoyjKS2yiqrVIE7PVrSi+WPf/xj1d299uabb7ad0Kdlfd555+12ZV3rcJIsO63jrcvO4wkqkeP3d7/7XdWLpvW1N9hgg269f5gdnHDCCdX3V07Y852Uk/ZPfOITbZVX8f3vf79qZUtFW3rCHHrooe3mikhvkhw77373u9vuy3drbv/4xz+m+h1ZL8d3K/SN5557rjovbT0mhw4dWn335phk4BDO6TM5oUgLW8f7WiUwZMzrL3/5y7ZurK1OP/308q9//atqVbvpppuqgB7plp7btddeWwX3jmNpazlRyQlJWt3TWp7W9o6606IIs6ull1662sf/+c9/VmPaOkp38XoMW04ManVX1/Q0yfGTluuMUW2VSq/IiUS643W3si5B4bDDDqt+z7LXW2+9ti70nR3DaVVMK3qrTGYH/UV6gNXfl+k9koCdMeOpmKp7rKQlLcdqesOkdTzHY+vcD63Hb0fT+o6s+W6FvtHdY5L+z5hzZilpCdh6663bQnctY+JyAj9q1KhqgqqVVlqp3HnnnW2PpyXgwAMPrC4LlQmv8v8JCmllr6X1IS0JaRHILd3a000+J0C5pRX+zDPPbOsqD/1RjotMppau6TlWWl133XXVLZdYi3R/reV4y8l+ffzkWKqPndz+8Ic/VK16kcmoWmv/p1ZZl1uCSC3LTut8Lu9WP57jOGNu68dzrLa+dlrRb7jhhl5dTzArSaVYPVyklu6t2f/Tap5gnh5j+Z6r5XswPU7SE6WWCuyPfvSj0/yOrPluhb6RSvOFFlqo3TGZXmGpSHf1lIFFOGeWkrFumZCmowTpXEImJxkJAfm58sort3tOxqFGWt3nmWeesuOOO1bdZhMU8vy0zC222GJl/fXXr7rApmUv92UmzExklVlsMyNu3X0W+qtUZL3yyivl05/+dDV0JJPEZf6FjNnOGO7ll1++el4qq/J4KsbSzTYn9Tm2dtlllyqspydLAkFC+be+9a2q8iyTV2VCx7XXXrvq3p5b7utuV/pMepXhJWk5Twv89ddfX1W61b1s9thjj+rasBn+knKnp01uaV2E/iLHSn385BjLWPEE81zpoJb5V/L4fffdV833sPjii7cNW4kMLUkPkxw/d9xxRxk3blx1zGaM+bS+I1v5boW+ke+3fO+mkjzff/XVFVKhzsChWzuzlEw4ldbsjnKingmpEgoyAUZmWs8JRD3mPDLDdGaQTlf1nHRkgre0uKf7bFoIM4FVTuLrmajPPvvs6sQkJx5ZZi7dlv+B/i6TyWSuh8z6mnGqGeeW7u45VjKutZYT+wT2dJtNj5Ycg5GKrVzZIBNIZYK2tHzneQnW6Wabqyak63lnlQI56ZiaBIpMUnXSSSdVr5+wkcu+5diOXPLpG9/4RlX2/Ey5c932VAZAf5FjpZZK44w7zXHR2qss481zS3fYXFIpV1fo2PMrsz4nnGdC1fR8yUn+wQcfXD02re/Imu9W6Ltz4FScJ5TnZ+ZeSa+xzs6L6b/mmJx+UgDQIif7aZ3OONeeSDhP5VnH/0tFWlrlpxXOAQAGKt3aAeg1GQfb2URUGS7iKggAAF3Tcg5Ar7WcAwAwfYRzAAAAaJhu7QAAANAw4RwAAAAaJpwDAABAw4RzAAAAaJhwDgAAAA0TzgH6oV133bW6tfrb3/5Wtt1227LyyiuXSy65pLGyAVO64447yhZbbFEmTJjQb1fPAw88UEaPHl1efvnlposCMEsSzgEGgOeee67su+++5W1ve1v54Q9/WDbZZJOmiwT8P2+88Ub58pe/XA477LAybNiwfrte3v72t1efPSeccELTRQGYJQnnAAPA+eefX15//fXyjW98o6y33npl5MiRTRcJ+H9+9rOflSFDhpRNN92036+Tz372s+U3v/lN+ec//9l0UQBmOcI5QD/3wgsvVCf/22yzTVl00UXbPfbQQw+Vz3/+82X99dcva6yxRtUV/u9//3u756Qb6oorrjjFLfe3Pufwww9v939f/OIXq+fdfPPN5bHHHqt+HzNmTLvn5H9alxPpcr/11luXVVZZpWy00UblO9/5Tpk4cWK751x//fXl4x//eFXmDTbYoBxzzDFVV9m8Vmdlza3u5t/6flZaaaWy9tprlwMPPLBaT7X//Oc/5eSTT67C0qqrrlo+/OEPl0svvXSq63lqr12vm3o9JJykJ8Pqq69evcezzjqrTJo0qW1Zeb8//elPq2222mqrVc859dRTqxbW1nXX8XWyfrvzv3leV2Vt3UbdWQ+TJ08uF1xwQfnQhz5Uvd5mm21W9c7I/d3dz+r1Ut8y9CLbNZVJrevl1ltvLZ/+9KerbZb9I9sy+0f9nO4sp95O+VnLMnLf1IaG5PE8r/V9Zx/M/XndJ598srz3ve9t9z9Z51tttVW1P7eu/1bpxp7Ks6zbrtZH6/GW33/yk59ULe3vec97yvvf//5y4oknti3/61//erUdsu1afe9736vK99///rft/U5t+09tH6nXQ2frslVnx/3CCy9c1l133fL973+/0/8BGMiGNF0AAGaOhIcEhnQhfeutt8o+++zT7vH77ruv7LTTTmXZZZctRx11VBk6dGi56KKLyu67715+9KMflXXWWaftuR/84AfL/vvv3+5EP//flYxvTwDtqZywn3766eVTn/pUOeKII8pdd91VBYG8j5NOOql6zh//+Mey3377Vd1jzzjjjPLiiy9W4evxxx8v3/72t8svfvGLtpCfIFn/Pe+8807xft58881y//33V/+fgJMQmx4Gu+yySzUU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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== ЗАДАНИЕ ВЫПОЛНЕНО С УСПЕХОМ ===\n" ] } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from tqdm.auto import tqdm\n", "import time\n", "import numpy as np\n", "\n", "\n", "file_path = \"top_movies.csv\"\n", "df = pd.read_csv(file_path)\n", "\n", "\n", "print(\"=== ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ ===\")\n", "print(f\"\\nРазмерность таблицы: {df.shape}\")\n", "\n", "print(\"\\nПервые 5 строк:\")\n", "display(df.head())\n", "\n", "print(\"\\nИнформация о типах данных и пропусках:\")\n", "df.info()\n", "\n", "print(\"\\nОписательная статистика числовых признаков:\")\n", "display(df.describe())\n", "\n", "print(\"\\nПроверка на наличие пустых значений:\")\n", "print(df.isnull().sum())\n", "\n", "\n", "print(\"\\nЗапуск процесса анализа строк (имитация)...\")\n", "for index, row in tqdm(df.iterrows(), total=df.shape[0], desc=\"Анализ базы фильмов\"):\n", " time.sleep(0.001)\n", "\n", "sns.set_style(\"whitegrid\")\n", "plt.rcParams['figure.facecolor'] = 'white'\n", "\n", "plt.figure(figsize=(10, 6))\n", "sns.histplot(df[\"vote_average\"], bins=15, kde=True, color=\"teal\", alpha=0.6)\n", "plt.title(\"Распределение средних рейтингов фильмов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Средний рейтинг (0-10)\", fontsize=12)\n", "plt.ylabel(\"Количество фильмов\", fontsize=12)\n", "plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.5)\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 7))\n", "scatter = sns.scatterplot(\n", " data=df, \n", " x=\"popularity\", \n", " y=\"vote_average\", \n", " hue=\"vote_count\", \n", " size=\"vote_count\", \n", " palette=\"viridis\", \n", " sizes=(20, 200), \n", " alpha=0.6\n", ")\n", "plt.title(\"Зависимость рейтинга от популярности и числа голосов\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Популярность\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.legend(title=\"Кол-во голосов\", bbox_to_anchor=(1.05, 1), loc='upper left')\n", "plt.show()\n", "\n", "plt.figure(figsize=(12, 6))\n", "df['vote_group'] = pd.qcut(df['vote_count'], q=4, labels=['Низкое', 'Среднее', 'Высокое', 'Топ'])\n", "\n", "sns.boxplot(x=\"vote_group\", y=\"vote_average\", data=df, palette=\"Set3\")\n", "plt.title(\"Разброс рейтингов по категориям активности зрителей\", fontsize=14, fontweight='bold')\n", "plt.xlabel(\"Количество проголосовавших (группы)\", fontsize=12)\n", "plt.ylabel(\"Средний рейтинг\", fontsize=12)\n", "plt.show()\n", "\n", "print(\"\\n=== ЗАДАНИЕ ВЫПОЛНЕНО С УСПЕХОМ ===\")" ] }, { "cell_type": "code", "execution_count": null, "id": "0c8eba63-9db6-411a-876a-357aab57e8d4", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.7" } }, "nbformat": 4, "nbformat_minor": 5 }