MII/lec1.ipynb

448 lines
148 KiB
Plaintext
Raw Normal View History

2024-09-21 08:59:30 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с NumPy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"matrix = np.array([[4, 5, 0], [9, 9, 9]])\n",
"print(\"matrix = \\n\", matrix, \"\\n\")\n",
"\n",
"tmatrix = matrix.T\n",
"print(\"tmatrix = \\n\", tmatrix, \"\\n\")\n",
"\n",
"vector = np.ravel(matrix)\n",
"print(\"vector = \\n\", vector, \"\\n\")\n",
"\n",
"tvector = np.reshape(vector, (6, 1))\n",
"print(\"tvector = \\n\", tvector, \"\\n\")\n",
"\n",
"list_matrix = list(matrix)\n",
"print(\"list_matrix = \\n\", list_matrix, \"\\n\")\n",
"\n",
"str_matrix = str(matrix)\n",
"print(\"matrix as str = \\n\", str_matrix, \"\\n\")\n",
"\n",
"print(\"matrix type is\", type(matrix), \"\\n\")\n",
"\n",
"print(\"vector type is\", type(vector), \"\\n\")\n",
"\n",
"print(\"list_matrix type is\", type(list_matrix), \"\\n\")\n",
"\n",
"print(\"str_matrix type is\", type(str_matrix), \"\\n\")\n",
"\n",
"formatted_vector = \"; \".join(map(str, vector))\n",
"print(\"formatted_vector = \\n\", formatted_vector, \"\\n\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с Pandas DataFrame\n",
"\n",
"https://pandas.pydata.org/docs/user_guide/10min.html"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с данными - чтение и запись CSV"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.read_csv(\"data/titanic.csv\", index_col=\"PassengerId\")\n",
"\n",
"df.to_csv(\"test.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с данными - основные команды"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.info()\n",
"\n",
"print(df.describe().transpose())\n",
"\n",
"cleared_df = df.drop([\"Name\", \"Ticket\", \"Embarked\"], axis=1)\n",
"print(cleared_df.head())\n",
"print(cleared_df.tail())\n",
"\n",
"sorted_df = cleared_df.sort_values(by=\"Age\")\n",
"print(sorted_df.head())\n",
"print(sorted_df.tail())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с данными - работа с элементами"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(df[\"Age\"])\n",
"\n",
"print(df.loc[100])\n",
"\n",
"print(df.loc[100, \"Name\"])\n",
"\n",
"print(df.loc[100:200, [\"Age\", \"Name\"]])\n",
"\n",
"print(df[0:3])\n",
"\n",
"print(df.iloc[0])\n",
"\n",
"print(df.iloc[3:5, 0:2])\n",
"\n",
"print(df.iloc[[3, 4], [0, 1]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Работа с данными - отбор и группировка"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"s_values = df[\"Sex\"].unique()\n",
"print(s_values)\n",
"\n",
"s_total = 0\n",
"for s_value in s_values:\n",
" count = df[df[\"Sex\"] == s_value].shape[0]\n",
" s_total += count\n",
" print(s_value, \"count =\", count)\n",
"print(\"Total count = \", s_total)\n",
"\n",
"print(df.groupby([\"Pclass\", \"Survived\"]).size().reset_index(name=\"Count\")) # type: ignore"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Исходные данные"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Pclass Survived Age\n",
"PassengerId \n",
"1 3 0 22.0\n",
"2 1 1 38.0\n",
"3 3 1 26.0\n",
"4 1 1 35.0\n",
"5 3 0 35.0\n",
"... ... ... ...\n",
"886 3 0 39.0\n",
"887 2 0 27.0\n",
"888 1 1 19.0\n",
"890 1 1 26.0\n",
"891 3 0 32.0\n",
"\n",
"[714 rows x 3 columns]\n"
]
}
],
"source": [
"data = df[[\"Pclass\", \"Survived\", \"Age\"]].copy()\n",
"data.dropna(subset=[\"Age\"], inplace=True)\n",
"print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Сводка пяти чисел\n",
"\n",
"<img src=\"assets/quantile.png\" width=\"400\" style=\"background-color: white\">"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'Pclass'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[9], line 26\u001b[0m\n\u001b[0;32m 22\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mhigh_iqr\u001b[39m(x):\n\u001b[0;32m 23\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m q3(x) \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1.5\u001b[39m \u001b[38;5;241m*\u001b[39m iqr(x)\n\u001b[1;32m---> 26\u001b[0m quantiles \u001b[38;5;241m=\u001b[39m \u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[43m[\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mAge\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroupby\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mPclass\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39maggregate([\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmin\u001b[39m\u001b[38;5;124m\"\u001b[39m, q1, q2, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmedian\u001b[39m\u001b[38;5;124m\"\u001b[39m, q3, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmax\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 27\u001b[0m \u001b[38;5;28mprint\u001b[39m(quantiles)\n\u001b[0;32m 29\u001b[0m iqrs \u001b[38;5;241m=\u001b[39m data[[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPclass\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAge\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\u001b[38;5;241m.\u001b[39mgroupby([\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPclass\u001b[39m\u001b[38;5;124m\"\u001b[39m])\u001b[38;5;241m.\u001b[39maggregate([low_iqr, iqr, high_iqr])\n",
"File \u001b[1;32mc:\\Users\\1\\Desktop\\улгту\\3 курс\\МИИ\\mai\\.venv\\Lib\\site-packages\\pandas\\core\\frame.py:9183\u001b[0m, in \u001b[0;36mDataFrame.groupby\u001b[1;34m(self, by, axis, level, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[0;32m 9180\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m level \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m by \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 9181\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mYou have to supply one of \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mby\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m-> 9183\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDataFrameGroupBy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 9184\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9185\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9186\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9187\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9188\u001b[0m \u001b[43m \u001b[49m\u001b[43mas_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mas_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9189\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9190\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9191\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9192\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9193\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32mc:\\Users\\1\\Desktop\\улгту\\3 курс\\МИИ\\mai\\.venv\\Lib\\site-packages\\pandas\\core\\groupby\\groupby.py:1329\u001b[0m, in \u001b[0;36mGroupBy.__init__\u001b[1;34m(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[0;32m 1326\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdropna \u001b[38;5;241m=\u001b[39m dropna\n\u001b[0;32m 1328\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m grouper \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 1329\u001b[0m grouper, exclusions, obj \u001b[38;5;241m=\u001b[39m \u001b[43mget_grouper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1330\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1331\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1332\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1333\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1334\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1335\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mno_default\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1336\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1337\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1339\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m observed \u001b[38;5;129;01mis\u001b[39;00m lib\u001b[38;5;241m.\u001b[39mno_default:\n\u001b[0;32m 1340\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28many\u001b[39m(ping\u001b[38;5;241m.\u001b[39m_passed_categorical \u001b[38;5;28;01mfor\u001b[39;00m ping \u001b[38;5;129;01min\u001b[39;00m grouper\u001b[38;5;241m.\u001b[39mgroupings):\n",
"File \u001b[1;32mc:\\Users\\1\\Desktop\\улгту\\3 курс\\МИИ\\mai\\.venv\\Lib\\site-packages\\pandas\\core\\groupby\\grouper.py:1043\u001b[0m, in \u001b[0;36mget_grouper\u001b[1;34m(obj, key, axis, level, sort, observed, validate, dropna)\u001b[0m\n\u001b[0;32m 1041\u001b[0m in_axis, level, gpr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m, gpr, \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1042\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1043\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(gpr)\n\u001b[0;32m 1044\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(gpr, Grouper) \u001b[38;5;129;01mand\u001b[39;00m gpr\u001b[38;5;241m.\u001b[39mkey \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[0;32m 1045\u001b[0m \u001b[38;5;66;03m# Add key to exclusions\u001b[39;00m\n\u001b[0;32m 1046\u001b[0m exclusions\u001b[38;5;241m.\u001b[39madd(gpr\u001b[38;5;241m.\u001b[39mkey)\n",
"\u001b[1;31mKeyError\u001b[0m: 'Pclass'"
]
}
],
"source": [
"def q1(x):\n",
" return x.quantile(0.25)\n",
"\n",
"\n",
"# median = quantile(0.5)\n",
"def q2(x):\n",
" return x.quantile(0.5)\n",
"\n",
"\n",
"def q3(x):\n",
" return x.quantile(0.75)\n",
"\n",
"\n",
"def iqr(x):\n",
" return q3(x) - q1(x)\n",
"\n",
"\n",
"def low_iqr(x):\n",
" return max(0, q1(x) - 1.5 * iqr(x))\n",
"\n",
"\n",
"def high_iqr(x):\n",
" return q3(x) + 1.5 * iqr(x)\n",
"\n",
"\n",
"quantiles = data[[\"Pclass\", \"Age\"]].groupby([\"Pclass\"]).aggregate([\"min\", q1, q2, \"median\", q3, \"max\"])\n",
"print(quantiles)\n",
"\n",
"iqrs = data[[\"Pclass\", \"Age\"]].groupby([\"Pclass\"]).aggregate([low_iqr, iqr, high_iqr])\n",
"print(iqrs)\n",
"\n",
"data.boxplot(column=\"Age\", by=\"Pclass\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Гистограмма"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data.plot.hist(column=[\"Age\"], bins=80)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Точечная диаграмма"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='Pclass', ylabel='Age'>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGwCAYAAACzXI8XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLqUlEQVR4nO3dfVwVdfo//tfhHgQO9yDJrRLeJN5DqGkmRa5r+cvM/LRlZdtWaKt2s9Jv07XaoFtL09zM1G68yW01u9FuSDEV71BKswgEBUNuJOBwk4Aw3z+Ik0cOcxg4Z2aO83o+HuexMdecwzU7DueamWveb50gCAKIiIiI7JCD0gkQERERdRcLGSIiIrJbLGSIiIjIbrGQISIiIrvFQoaIiIjsFgsZIiIislssZIiIiMhuOSmdgK21traipKQEXl5e0Ol0SqdDREREXSAIAmpraxEaGgoHh86vu1zxhUxJSQnCwsKUToOIiIi6obi4GH369Ok0fsUXMl5eXgDa/o/w9vZWOBsiIiLqCoPBgLCwMOP3eGeu+EKm/XaSt7c3CxkiIiI7Y6kthM2+REREZLdYyBAREZHdYiFDREREdouFDBEREdktFjJERERkt1jIEBERkd1iIUNERER2i4UMERER2S0WMkRERGS3WMgQERGR3VK0kGlpacHTTz+NqKgouLu7o2/fvnj22WchCIJxHUEQsGjRIvTu3Rvu7u5ISkpCXl6eglm3Kaiow67cchSer1c6FSIiIs1SdK6lF154AW+++SbWr1+PQYMG4ciRI7jvvvug1+vx6KOPAgBefPFFLFu2DOvXr0dUVBSefvppJCcn4+TJk3Bzc5M95+qGJjy6MQd78iqMy8bFBGL5zGHQezjLng8REZGW6YRLL3/I7M9//jOCg4OxZs0a47Jp06bB3d0d77//PgRBQGhoKB577DE8/vjjAICamhoEBwdj3bp1uPPOOy3+DoPBAL1ej5qaGqtMGnnPmkPYl38eLZf83+ao02FMvwC8Ozu+x59PREREXf/+VvTW0ujRo5GRkYGff/4ZAPDdd99h7969mDRpEgCgsLAQpaWlSEpKMr5Hr9cjISEBWVlZZj+zsbERBoPB5GUtBRV12JNXYVLEAECLIGBPXgVvMxEREclM0VtLCxcuhMFgQP/+/eHo6IiWlhb8+9//xl133QUAKC0tBQAEBwebvC84ONgYu1xaWhqWLFlik3zP/NogGj9dWY+ogF42+d1ERETUkaJXZD788EN88MEH2LBhA44ePYr169fj5Zdfxvr167v9mampqaipqTG+iouLrZZvhJ+HaDzSn0UMERGRnBS9IvPEE09g4cKFxl6XwYMH48yZM0hLS8OsWbMQEhICACgrK0Pv3r2N7ysrK8PQoUPNfqarqytcXV1tkm90oCfGxQR22iPDqzFERETyUvSKTENDAxwcTFNwdHREa2srACAqKgohISHIyMgwxg0GAw4ePIjExERZc223fOYwjOkXYLJsTL8ALJ85TJF8iIiItEzRKzJTpkzBv//9b4SHh2PQoEE4duwYXn31Vdx///0AAJ1Oh3nz5uG5555DTEyM8fHr0NBQTJ06VZGc9R7OeHd2PArP1+N0ZT0i/XvxSgwREZFCFC1kli9fjqeffhqPPPIIysvLERoair/97W9YtGiRcZ0nn3wS9fX1ePDBB1FdXY2xY8di586diowhc6moABYwRERESlN0HBk5WHscGSIiIrI9uxhHhoiIiKgnWMgQERGR3WIhQ0RERHaLhQwRERHZLRYyREREZLdYyBAREZHdYiFDREREdouFDBEREdktFjJERERkt1jIEBERkd1iIUNERER2i4UMERER2S0WMkRERGS3WMgQERGR3XJSOgEiIiKyTwUVdTjzawMi/XshKqCXIjmwkCEiIiJJqhua8OjGHOzJqzAuGxcTiOUzh0Hv4SxrLry1RERERJI8ujEH+/LPmyzbl38eczcekz0XFjJERETUZQUVddiTV4EWQTBZ3iII2JNXgcLz9bLmw0KGiIiIuuzMrw2i8dOVLGSIiIhIpSL8PETjkf7yNv2ykCEiIqIuiw70xLiYQDjqdCbLHXU6jIsJlP3pJRYyREREJMnymcMwpl+AybIx/QKwfOYw2XPh49dEREQkid7DGe/Ojkfh+XqcrqznODJERERkf6IClCtg2vHWEhEREdktFjJERERkt1jIEBERkd1ij0w3ZeaWI+dsNYaH++K6mECl0yEiItIkFjISnamsx9QV+1DV0Gxc5uvhjO0pYxHmLz5IEBEREVkXby1JdHkRAwBVDc24ZcVehTIiIiJSRkFFHXbllss+v9KleEVGgszc8g5FTLuqhmZ8m1fB20xERHTFq25owqMbc7Anr8K4bFxMIJbPHAa9h7OsufCKjAQ5Z6tF40eLquRJhIgAqONskEiLHt2Yg335502W7cs/j7kbj8mei6KFTGRkJHQ6XYdXSkoKAODChQtISUmBv78/PD09MW3aNJSVlSmW79A+PqLx4eG+8iRCpHHVDU24Z80h3PBKJu5bexgTXt6Ne9YcQk0nV0yJyHoKKuqwJ68CLYJgsrxFELAnr0L2EwtFC5nDhw/j3LlzxtdXX30FAJg+fToAYP78+fjkk0+wZcsWZGZmoqSkBLfddpti+Y6PDYKTg85szMlBx9tKRDJR09kgkdac+bVBNH66Ut5CRtEemcBA0y/+9PR09O3bF+PHj0dNTQ3WrFmDDRs24IYbbgAArF27FgMGDMCBAwdw7bXXmv3MxsZGNDY2Gn82GAxWy7egog4XWwWzsYutAgrP1ys+VDPRla79bPByl54N8jgksp0IP/EndCP9NTr7dVNTE95//33cf//90Ol0yM7ORnNzM5KSkozr9O/fH+Hh4cjKyur0c9LS0qDX642vsLAwq+WotiqUSIt4HBIpKzrQE+NiAuGoM71D4ajTYVxMoOwnEqopZLZt24bq6mrce++9AIDS0lK4uLjAx8fHZL3g4GCUlpZ2+jmpqamoqakxvoqLi62Wo9qqUCIt4nFIpLzlM4dhTL8Ak2Vj+gVg+cxhsueimsev16xZg0mTJiE0NLRHn+Pq6gpXV1crZWWqvQrdl3/epMnJUafDmH4BvJxNJAMeh0TK03s4493Z8Sg8X4/TlfWI9FduFmxVXJE5c+YMvv76azzwwAPGZSEhIWhqakJ1dbXJumVlZQgJCZE5wz+oqQol0ioeh0TqEBXQCxNigxQ9gVDFFZm1a9ciKCgIkydPNi4bMWIEnJ2dkZGRgWnTpgEAcnNzUVRUhMTERKVSVVUVSqRVPA6JqJ3ihUxrayvWrl2LWbNmwcnpj3T0ej1mz56NBQsWwM/PD97e3pg7dy4SExM7fWJJTlEB/MNJpDQeh0SkeCHz9ddfo6ioCPfff3+H2NKlS+Hg4IBp06ahsbERycnJWLlypQJZEhERkRrpBEEwPzDKFcJgMECv16Ompgbe3t5Kp0NERERd0NXvb1U0+xIRERF1BwsZIiIislssZIiIiMhusZAhIiIiu8VChoiIiOyW4o9fExF1V0FFHc782sAB8Yg0jIUMEdmd6oYmPLoxB3vyKozLxsUEYvnMYdB7OCuYGRHJjbeWiMjuPLoxB/vyz5ss25d/HnM3HlMoIyJSCgsZIrIrBRV12JNXYTLzNQC0CAL25FWg8Hy9QpkRkRJYyHRTZm45Xs/4Gd9ecmmbiGzvzK8NovHTlSxkiORSUFGHXbnlip5AsEdGojOV9Zi6Yh+qGpqNy3w9nLE9ZSzC/D0UzIxIGyL8xI+zSH82/RLZmpr61HhFRqLLixgAqGpoxi0r9iqUEZG2RAd6YlxMIBx1OpPljjodxsUE8uklIhmoqU+NhYwEmbnlHYqYdlUNzbzNRCST5TOHYUy/AJNlY/oFYPnMYQplRKQdautT460lCXLOVovGjxZV4bqYQHmSIdIwvYcz3p0dj8Lz9ThdWc9xZIhk1JU+NTmPRxYyEgzt4yMaHx7uK08iRAQAiApgAUMkN7X1qfHWkgTjY4NE47waQ0REVzq19amxkJEgM7dcNM4eGSIi0gI19anx1pI
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.plot.scatter(x=\"Age\", y=\"Sex\")\n",
"\n",
"df.plot.scatter(x=\"Pclass\", y=\"Age\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Столбчатая диаграмма"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1486fb22cc0>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGrCAYAAADqwWxuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqnElEQVR4nO3deXhU5aHH8d8kIRtkJg2QTPKQsIrsaxAjiAgpIVhkVZZUiXLhyqKFWGlzryyCvUGuCkW223uvBIUIUgsCAkJZwhZQ0oKK7AWDDyThgsmwJYRk7h88TDslLIGEeRO+n+c5z+PMec+Zd2Da+XLOmRmL0+l0CgAAwCBenp4AAADAPyNQAACAcQgUAABgHAIFAAAYh0ABAADGIVAAAIBxCBQAAGAcH09P4F6UlJTo9OnTCgoKksVi8fR0AADAXXA6nbpw4YIiIiLk5XX7YySVMlBOnz6tyMhIT08DAADcg1OnTqlOnTq3HVMpAyUoKEjS9SdotVo9PBsAAHA3HA6HIiMjXe/jt1MpA+XGaR2r1UqgAABQydzN5RlcJAsAAIxDoAAAAOMQKAAAwDiV8hqUu1VcXKyioiJPTwOGqVatmry9vT09DQDAbVTJQHE6ncrOzlZeXp6npwJDBQcHy2638z06AGCoKhkoN+IkNDRUgYGBvAnBxel06vLly8rNzZUkhYeHe3hGAIDSVLlAKS4udsVJzZo1PT0dGCggIECSlJubq9DQUE73AICBqtxFsjeuOQkMDPTwTGCyG68PrlECADNVuUC5gdM6uB1eHwBgtiobKAAAoPIiUAAAgHGq3EWyt5W+98E91lPRD+6xKpGTJ0+qfv36+utf/6o2bdpU2ONMmTJFK1eu1L59+yrsMQAAFYcjKIZITEyUxWLR9OnT3e5fuXJlma+XqFevnmbNmlWOsys/kZGROnPmjFq0aOHpqQAADEagGMTf31/vvPOOfvrpJ09P5Z7czSdivL29Zbfb5ePzcB28AwCUDYFikNjYWNntdqWkpNx23GeffabmzZvLz89P9erV03vvveda17VrV/3www8aP368LBbLLY++OJ1OTZkyRVFRUfLz81NERIRee+0113qLxaKVK1e6bRMcHKzU1FRJ10/VWCwWLVu2TE899ZT8/f01f/58BQQEaN26dW7brVixQkFBQbp8+bJru3379qmkpER16tTR/Pnz3cb/9a9/lZeXl3744QdJUl5env7lX/5FtWvXltVqVbdu3bR//363baZPn66wsDAFBQVp+PDhKigouO2fIQDAbPwz1iDe3t76j//4Dw0dOlSvvfaa6tSpc9OYzMxMPf/885oyZYoGDRqkXbt2afTo0apZs6YSExP1pz/9Sa1bt9bIkSM1YsSIWz7WZ599ppkzZ2rp0qVq3ry5srOzb3rTvxu//e1v9d5776lt27by9/fX9u3blZaWpvj4eNeYJUuWqG/fvjd9N42Xl5eGDBmitLQ0jRo1ym18p06dVLduXUnSc8895wofm82m//qv/1L37t115MgRhYSE6NNPP9WUKVM0d+5cde7cWR9//LFmz56tBg0alPn5APCAB3l94L3iusIHjiMohunXr5/atGmjyZMnl7r+/fffV/fu3TVx4kQ1btxYiYmJGjt2rP7zP/9TkhQSEiJvb28FBQXJbrfLbreXup+srCzZ7XbFxsYqKipKjz322G2D5lbGjRun/v37q379+goPD1dCQoJWrlypy5cvS5IcDoe++OILJSQklLp9QkKCdu7cqaysLElSSUmJli5d6hq/Y8cOffXVV1q+fLmio6P1yCOP6N1331VwcLD++Mc/SpJmzZql4cOHa/jw4Xr00Uf19ttvq1mzZmV+LgAAcxAoBnrnnXe0aNEiHTx48KZ1Bw8eVKdOndzu69Spk44ePari4uK7foznnntOV65cUYMGDTRixAitWLFC165dK/Nco6Pd/1XRq1cvVatWTatWrZJ0/UiN1WpVbGxsqdu3adNGTZs2VVpamiQpPT1dubm5eu655yRJ+/fv18WLF1WzZk3VqFHDtZw4cULHjx+XdP3PpGPHjm77jYmJKfNzAQCYg0AxUJcuXRQXF6fk5OQKe4zIyEgdPnxY8+bNU0BAgEaPHq0uXbq4LnS1WCxyOp1u25R2EWz16tXdbvv6+mrgwIGu4EhLS9OgQYNue1FsQkKC2/iePXu6fkfp4sWLCg8P1759+9yWw4cP64033rj3PwAAgNEIFENNnz5dq1evVkZGhtv9TZs21c6dO93u27lzpxo3buz60TtfX9+7OpoSEBCg3r17a/bs2dq6dasyMjL07bffSpJq166tM2fOuMYePXrUddrmThISErR+/XodOHBAmzdvvuXpnRuGDh2q7777TpmZmfrjH//oNr5du3bKzs6Wj4+PGjVq5LbUqlXL9WeyZ88et33u3r37ruYKADATF8kaqmXLlkpISNDs2bPd7n/99dfVoUMHTZs2TYMGDVJGRobmzJmjefPmucbUq1dP27Zt0+DBg+Xn5+d6I/9HqampKi4uVseOHRUYGKjFixcrICDAdWFqt27dNGfOHMXExKi4uFi/+c1vVK1atbuae5cuXWS325WQkKD69evfdPrln9WrV09PPPGEhg8fruLiYj377LOudbGxsYqJiVHfvn01Y8YMNW7cWKdPn9YXX3yhfv36KTo6Wr/61a+UmJio6OhoderUSUuWLNGBAwe4SBYAKrGHK1Aq2VXYU6dO1bJly9zua9eunT799FNNmjRJ06ZNU3h4uKZOnarExES37f71X/9VDRs2VGFh4U2naqTrHxmePn26kpKSVFxcrJYtW2r16tWuUyvvvfeeXnrpJT355JOKiIjQ73//e2VmZt7VvC0Wi4YMGaIZM2Zo0qRJd7VNQkKCRo8erRdffFEBAQFu+1q7dq3+/d//XS+99JLOnj0ru92uLl26KCwsTJI0aNAgHT9+XBMmTFBBQYEGDBigUaNG6csvv7yrxwYAmMfiLO3dy3AOh0M2m035+fmyWq1u6woKCnTixAnVr19f/v7+HpohTMfrBDAIHzN+aNzu/fufcQ0KAAAwDoECAACMQ6AAAADjECgAAMA4BAoAADAOgQIAAIxDoAAAAOMQKAAAwDgECrR161ZZLBbl5eVV6OMkJiaqb9++FfoYAICq4aH6qnvLW5YH9ljOyWX/gt6zZ89q0qRJ+uKLL5STk6Of/exnat26tSZNmqROnTpVwCyve+KJJ3TmzBnZbLYKewwAAMrioQoU0w0YMEBXr17VokWL1KBBA+Xk5GjTpk06d+7cPe3P6XSquLhYPj63/2v29fWV3W6/p8cAAKAicIrHEHl5edq+fbveeecdPf3006pbt64ee+wxJScn69lnn9XJkydlsVi0b98+t20sFou2bt0q6e+natatW6f27dvLz89PH374oSwWiw4dOuT2eDNnzlTDhg3dtsvLy5PD4VBAQIDWrVvnNn7FihUKCgrS5cuXJUmnTp3S888/r+DgYIWEhKhPnz46efKka3xxcbGSkpIUHBysmjVrasKECaX+aCEAAKUhUAxRo0YN1ahRQytXrlRhYeF97eu3v/2tpk+froMHD2rgwIGKjo7WkiVL3MYsWbJEQ4cOvWlbq9WqX/ziF0pLS7tpfN++fRUYGKiioiLFxcUpKChI27dv186dO1WjRg317NlTV69elXT915BTU1P14YcfaseOHTp//rxWrFhxX88LAPDwIFAM4ePjo9TUVC1atEjBwcHq1KmT/u3f/k3ffPNNmfc1depU/fznP1fDhg0VEhKihIQEffLJJ671R44cUWZmphISEkrdPiEhQStXrnQdLXE4HPriiy9c45ctW6aSkhL9z//8j1q2bKmmTZtq4cKFysrKch3NmTVrlpKTk9W/f381bdpUCxYs4BoXAMBdK1OgpKSkqEOHDgoKClJoaKj69u2rw4cPu43p2rWrLBaL2/LKK6+4jcnKytIzzzyjwMBAhYaG6o033tC1a9fu/9lUcgMGDNDp06e1atUq9ezZU1u3blW7du2Umppapv1ER7v/LPjgwYN18uRJ7d69W9L
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = data.groupby([\"Pclass\", \"Survived\"]).size().unstack().plot.bar(color=[\"pink\", \"green\"])\n",
"plot.legend([\"Not survived\", \"Survived\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Визуализация - Временные ряды"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" my_date my_value bullet bulletClass label date\n",
"0 28.03.2023 76.5662 NaN NaN NaN 2023-03-28\n",
"1 31.03.2023 77.0863 NaN NaN NaN 2023-03-31\n",
"2 01.04.2023 77.3233 NaN NaN NaN 2023-04-01\n",
"3 04.04.2023 77.9510 NaN NaN NaN 2023-04-04\n",
"4 05.04.2023 79.3563 NaN NaN NaN 2023-04-05\n",
".. ... ... ... ... ... ...\n",
"238 20.03.2024 92.2243 NaN NaN NaN 2024-03-20\n",
"239 21.03.2024 92.6861 NaN NaN NaN 2024-03-21\n",
"240 22.03.2024 91.9499 NaN NaN NaN 2024-03-22\n",
"241 23.03.2024 92.6118 NaN NaN NaN 2024-03-23\n",
"242 26.03.2024 92.7761 NaN NaN NaN 2024-03-26\n",
"\n",
"[243 rows x 6 columns]\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from datetime import datetime\n",
"import matplotlib.dates as md\n",
"\n",
"ts = pd.read_csv(\"data/dollar.csv\")\n",
"ts[\"date\"] = ts.apply(lambda row: datetime.strptime(row[\"my_date\"], \"%d.%m.%Y\"), axis=1) # создали новый столбец дэйт, с помощью эплай достучались до всех строк, лямбда выражение принимает одну строку ну и переделали из строки в нормальную дату\n",
"\n",
"\n",
"print(ts)\n",
"\n",
"plot = ts.plot.line(x=\"date\", y=\"my_value\")\n",
"plot.xaxis.set_major_locator(md.DayLocator(interval=10)) #ставим интервал по времени в 10 дней\n",
"plot.xaxis.set_major_formatter(md.DateFormatter(\"%d.%m.%Y\")) # определяем формат даты\n",
"plot.tick_params(axis=\"x\", labelrotation=90) # угол поворота подписей нижней оси"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}