2024-09-16 03:56:08 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Начало лабораторной работы.\n",
"Выгрузка данных их csv-файла в датафрейм:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from typing import Any\n",
"\n",
"import pandas as pd\n",
"from pandas import DataFrame, Series\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"df: DataFrame = pd.read_csv('..//static//csv//TSLA.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Краткая информация о столбцах датафрейма:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 156 entries, 0 to 155\n",
"Data columns (total 9 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Insider Trading 156 non-null object \n",
" 1 Relationship 156 non-null object \n",
" 2 Date 156 non-null object \n",
" 3 Transaction 156 non-null object \n",
" 4 Cost 156 non-null float64\n",
" 5 Shares 156 non-null object \n",
" 6 Value ($) 156 non-null object \n",
" 7 Shares Total 156 non-null object \n",
" 8 SEC Form 4 156 non-null object \n",
"dtypes: float64(1), object(8)\n",
"memory usage: 11.1+ KB\n",
" count mean std min 25% 50% 75% max\n",
"Cost 156.0 478.785641 448.922903 0.0 50.5225 240.225 934.1075 1171.04\n"
]
}
],
"source": [
"df.info()\n",
"print(df.describe().transpose())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## График 1.\n",
"\n",
"### Круговая диаграмма.\n",
"\n",
"Данная круговая диаграмма отображает распределение количества сделок, совершенных инсайдерами. Это позволяет сделать вывод о том, какие инсайдеры были наиболее активны в торговле акциями, давая возможность быстро оценить лидеров по количеству транзакций, коим в данном случае является CEO компании — Илон Маск."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Подсчет количества сделок для каждого инсайдера\n",
"insider_count: Series[int] = df['Insider Trading'].value_counts()\n",
"\n",
"# Получение цветовой схемы\n",
"colors = plt.get_cmap('tab10')(range(len(insider_count)))\n",
"\n",
"# Визуализация в виде круговой диаграммы\n",
"plt.figure(figsize=(8, 8))\n",
"insider_count.plot(kind='pie', autopct='%1.1f%%', startangle=90, colors=colors, labels=['']*len(insider_count))\n",
"\n",
"# Добавление легенды\n",
"plt.legend(labels=insider_count.index, loc='upper right', bbox_to_anchor=(1.3, 1))\n",
"plt.title('Распределение количества сделок среди инсайдеров')\n",
"plt.ylabel('')\n",
"plt.axis('equal')\n",
"\n",
"# Отображение графика\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## График 2.\n",
"\n",
"### Столбчатая диаграмма.\n",
"\n",
"Диаграмма показывает сколько сделок каждого типа было совершено инсайдерами. Для каждого инсайдера отдельный столбец, где каждый цвет представляет один тип сделки. Н а основе полученного графика можно сделать вывод, что основную часть сделок составляют продажи акций, а не опционов."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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5Orqqq5duypnzpw6efKkli5davvedu7cqa1bt+q1115TtmzZdObMGc2cOVPVq1fXoUOH5O7u/sjlf/vtt/rnn39ijeFJtnG3bt1s9bFXr146ffq0PvvsM+3du1dbtmyRq6urbd7jx4/r1Vdf1dtvv60OHTpo7ty5at26tVauXKk6depIenBsqlSpku7evatevXopbdq0mj9/vpo0aaJffvlFzZs3t1v/4469AJIwAwAJ3Ny5c40ks2zZMpM7d24jydStWzfGee/fv28yZMhgihQpYu7du2crX7ZsmZFkhgwZYjd/WFiYkWSGDx8ebX2nT5+2lUkyQ4cOtb1+//33TYYMGUzp0qVNtWrVbOXDhw83kozVarVbT44cOUyHDh1sr0eOHGk8PDzMsWPH7OYbOHCgSZYsmTl37pwxxpg///zTSDK9evWK9lkfXsejYo+0fv16I8msX7/eVhYSEmJcXFzMO++8Yytr1qyZSZEihTl58qStLCAgwHh5eZmqVatGW25UTxPv6tWrjSTzyy+/2Mp69OhhHj41denSxWTOnNn8999/duWvvfaa8fHxMXfv3rUrb9u2rfH397cre/j7K1GihMmQIYO5fv26rWz//v3GxcXFtG/f3lY2dOhQWzxnzpwxmTNnNi+99JJd3XqUqNs7JCTEVK9e3WTIkMGcOHHCbr7w8HATGhpqV3bz5k2TMWNG07lz52jLHT9+vEmWLJlZuXKlMca+bn344YfGzc3NbN68OcaY5syZYySZXbt22coaNmxocuTIYTff026fa9euxbi+p90fY1OtWjW7fS2qDh062H2GgwcPGhcXF9OgQYNo+0OOHDlMw4YNoy0jprr3cN0yxph69eqZXLlyPXHcWbJkMY0aNbK93rlzp5Fk5s6dG23ejz76yFgsFruyh48ds2fPNpLMtm3b7OaTZHr06BFrLDEdA8qXL2/bTlH3kUd9tzHFX7VqVePl5WXOnj1rN2/UfT6mbblt2zYjyXzzzTe2soePYSEhISZ79uy2GGPabk+yjTdt2mQkme+//97uvStXroxWniNHDiPJLFq0yFYWFBRkMmfObEqWLGkr69Onj5FkNm3aZCu7deuW8ff3Nzlz5jQRERHGmCc/9gJIumheDiDR6Nixo86fP6/XX39dq1ev1sKFC6PNs2vXLl29elXvvPOOXT/vhg0bqkCBAtGa/d2/f1+S5Obm9sRxXLx4UZ9++qkGDx5sd3dPkjJkyCBJunDhQqzLWLhwoa156H///Wf7q127tiIiIvTXX39JkhYtWiSLxaKhQ4dGW0ZMzbCfRFBQkP777z+dO3dO48ePl9VqVc2aNSVJERERWr16tZo1a6ZcuXLZ3pM5c2a9/vrr2rx5s4KDgx+57KeJN/IuZGz98Y0xWrRokRo3bixjjN22qlevnoKCgrRnzx6799y/fz/W7/PSpUvat2+fOnbsqDRp0tjKixUrpjp16sR41+/69euqV6+evLy8tGTJkqcaQ8Bqtap9+/bavn27li9frty5c9tNT5YsmVKkSGGb98aNGwoPD1eZMmWifTZJGjBggN544w298sorOnTokK3822+/1SeffKLZs2ercuXKMcbyJNs8LtvnUZ52f4wvgwYNUqlSpdS6detnWk6qVKls/4/cb6pVq6ZTp04pKCjoiZYREhL
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Подсчет количества сделок каждого типа (Transaction) для каждого инсайдера\n",
"transaction_count: DataFrame | Series[Any] = df.groupby(['Insider Trading', 'Transaction']).size().unstack(fill_value=0)\n",
"\n",
"# Визуализация в виде столбчатой диаграммы\n",
"transaction_count[['Sale', 'Option Exercise']].plot(kind='bar', stacked=True, figsize=(10, 6), color=['skyblue', 'lightgreen'])\n",
"\n",
"# Добавление легенды\n",
"plt.title('Количество сделок каждого типа для инсайдеров')\n",
"plt.xlabel('Инсайдер')\n",
"plt.ylabel('Количество сделок')\n",
"plt.xticks(rotation=45, ha='right')\n",
"plt.legend(title='Тип сделки')\n",
"plt.grid(True)\n",
"\n",
"# Отображение графика\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## График 3.\n",
"\n",
"### Линейная диаграмма.\n",
"\n",
"Данная линейная диаграмма отображает количество сделок, совершённых инсайдерами, в разрезе по месяцам. Это помогает выявить периоды с наибольшей активностью инсайдеров или сезонные колебания на рынке. Н а графике видно, что продажи акций летом постепенно уменьшались и почти достигли своего минимума в конце сезона, после чего начался рост."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtYklEQVR4nOzdd3hUZfrG8e+kE1KogQChg4B0REGkd5CODezYUVB3dXV3LazrYll/ir2sqyiiLgiCSu8goNKLgPQk9JaEENLP7483CcYECMPMnJnJ/bmuuebMmZkzd5JhmHnmfZ/XYVmWhYiIiIiIiIiIiAcF2B1ARERERERERERKHxWlRERERERERETE41SUEhERERERERERj1NRSkREREREREREPE5FKRERERERERER8TgVpURERERERERExONUlBIREREREREREY9TUUpERERERERERDxORSkREREREREREfE4FaVERERERERERMTjVJQSERERERERERGPU1FKRETEJp9++ikOh4M1a9YUue6jjz7C4XAwePBgcnJybEgnIiIiIuJeKkqJiIh4menTp/Pggw/SsWNHvvrqKwIDA+2OJCIiIiLicipKiYiIeJElS5Zwyy230KRJE7777jvCwsLsjiQiIiIi4hYqSomIiHiJDRs2MGjQIGJjY5k7dy7R0dFFbjNlyhTatGlDmTJlqFSpErfeeisHDhwo9ngOh6PY0759+wrd5vnnny90v1dffRWHw0GXLl0K9j3//PM4HI4ij1G7dm3uvPPOQvuSkpJ49NFHiYuLIzQ0lPr16/Pyyy+Tm5tb6Ha5ublMmDCBZs2aERYWRuXKlenTp0/BdMbz5c8/5edbsmRJof2hoaE0bNiQ8ePHY1lWocdcv349ffv2JSoqioiICLp3787q1auL/f390cXy5vtjnt+f/ujAgQPcfffdVKlShdDQUK688kr++9//Fvv4d955Z7HH/OPfb9GiRXTs2JGyZctSrlw5Bg0axLZt2wrdpri/5+LFiwkNDeWBBx644O/hQj+fw+Eo8nzYs2cPN9xwAxUqVCA8PJx27drxww8/XPAx8uUf84033ihyXaNGjXA4HDz88MOF9rvq+QeQmprKn/70J+rWrUtwcHChn/P48eOFcv4xB8D1119P7dq1C+3btGkTd955J3Xr1iUsLIyqVaty9913c+LEiUK3y/8bxcTEkJWVVei6L7/8stgcIiIivibI7gAiIiICu3fvpk+fPoSGhjJ37lxiY2OL3ObTTz/lrrvuom3btowfP54jR44wYcIEfvzxR9avX0+5cuWK3GfIkCEMHToUgOXLl/Phhx9eMEdSUhLjx493+udIS0ujc+fOHDhwgPvvv5+aNWuycuVKnn76aQ4dOlSouDBq1Cg+/fRT+vbtyz333EN2djbLly9n9erVXHXVVXz++ecFt83P/vrrr1OpUiUAqlSpUuix//rXv9K4cWPOnj3L119/zV//+ldiYmIYNWoUAFu3bqVjx45ERUXx5JNPEhwczAcffECXLl1YunQp11xzzQV/tovl/aMxY8bQtm1bAD777DPmz59f6PojR47Qrl27goJG5cqVmT17NqNGjSIlJYVHH320yDErVarE66+/XnD5tttuK3T9ggUL6Nu3L3Xr1uX555/n7NmzvPXWW3To0IF169YVKZDk27hxI4MHD6Zfv3688847F/w9FPfz5bvnnnuK/IzXXnstaWlpjBkzhooVKzJx4kQGDhzI1KlTGTJkyEUfJywsjE8++aTQ72PlypXs37+/yG1d+fwDeOKJJ3j//fcZNWoUHTp0IDg4mGnTpjF9+vQS/Y6KM3/+fPbs2cNdd91F1apV2bp1Kx9++CFbt25l9erVRYqFp0+f5vvvvy/0u/rkk08ICwsjPT3d6RwiIiJewRIRERFbfPLJJxZgff/991a9evUswOrVq1ext83MzLRiYmKspk2bWmfPni3Y//3331uA9eyzzxa6fVZWlgVY48aNK/J4e/fuLdgHWM8991zB5SeffNKKiYmx2rRpY3Xu3Llg/7hx4yzAys3NLfQ4tWrVsu64446Cyy+88IJVtmxZ67fffit0u6eeesoKDAy04uPjLcuyrEWLFlmANWbMmCI/6x8f43zZ8y1evNgCrMWLFxfsS09PtwICAqyHHnqoYN/gwYOtkJAQa/fu3QX7Dh48aEVGRlqdOnUqctzfu5S88+bNswBr6tSpBftGjx5t/fFt16hRo6zY2Fjr+PHjhfbffPPNVnR0tJWWllZo/8iRI606deoU2vfHv1/Lli2tmJgY68SJEwX7Nm7caAUEBFi33357wb7nnnuuIM++ffus2NhY67rrriv03Dqf/N/3lClTilxXtmzZQs+HRx991AKs5cuXF+w7ffq0VadOHat27dpWTk7OBR8LsIYPH24FBQVZa9asKdg/atQoa8SIERZgjR49umC/q59/sbGxVu/evQtdn/+7O3bsWKGcv8+Rr3///latWrUK7fvj39WyLOvLL7+0AGvZsmVFHueWW26xrr/++oL9+/fvtwICAqxbbrmlSA4RERFfo+l7IiIiNrvzzjtJSEhgxIgRzJs3jylTphS5zZo1azh69CgPPfRQoT5T/fv3p1GjRkWmQ2VmZgIQGhpa4hwHDhzgrbfe4plnniEiIqLQdTExMQAkJiZe8BhTpkyhY8eOlC9fnuPHjxecevToQU5ODsuWLQPgm2++weFw8NxzzxU5RnHT3EoiOTmZ48ePEx8fzyuvvEJubi7dunUDICcnh3nz5jF48GDq1q1bcJ/Y2FhGjBjBihUrSElJOe+xLyVv/uiVC/UDsyyLb775hgEDBmBZVqHfVe/evUlOTmbdunWF7pOZmXnBv+ehQ4fYsGEDd955JxUqVCjY37x5c3r27MmsWbOK3OfEiRP07t2byMhIZs6c6fIeZrNmzeLqq6/muuuuK9gXERHBfffdx759+/j1118veowqVarQv39/PvnkE8CMhvrf//7HXXfdVeS2rn7+nT59mooVK17yz30hZcqUKdhOT0/n+PHjtGvXDqDI3xzg7rvvZs6cORw+fBiAiRMn0r59exo2bOjSXCIiInZQUUpERMRmJ0+eZNKkSUycOJGWLVsyduxYkpOTC90mf6rSFVdcUeT+jRo1KjKVKSkpCaBIcelCnnvuOapVq8b9999f5Lr27dvjcDh4+umn2bdvX8GH/T/26dm5cydz5syhcuXKhU49evQA4OjRo4CZrlitWrVCxZPLNXjwYCpXrkytWrV4/vnn+fvf/86wYcMAOHbsGGlpacX+/ho3bkxubi4JCQnnPfal5M3v8VNcT7B8x44dIykpiQ8//LDI7yq/2JL/u8qXlJR0wb/nhZ4jjRs35vjx45w5c6bQ/uuvv54dO3aQlJRUpP+WK+zfv/+8eX6f+WLuuusuJk+eTEZGBlOmTKF8+fIFBcffc/Xzr3379kyfPp2pU6dy6NAhjh8/TlpaWokyn8/JkycZO3YsVapUoUyZMlSuXJk6deoAFPl3D9CyZUuaNm3KZ599hmVZBdN4RURE/IF6SomIiNjs1Vdf5YYbbgDgww8/pF27djz99NO8++67Th8zf1RF1apVS3T7bdu28emnnzJp0iSCg4OLXN+iRQuee+45xo0bxxdffHHe4+Tm5tKzZ0+efPLJYq935+iOf//737Ro0YKsrCx++eUX/vnPfxIUFFTsaBh3ym8kf77+TUBBMe/WW2/ljjvuKPY2zZs3L3T58OHD1KpVyyUZ823fvp3Zs2dz44038qc//algNJK36d+/PyEhIXz77bd88skn3HHHHQQEFP1u1dXPvw8//JBbbrml4N+nK9x4442sXLmSJ554gpYtWxIREUFubi59+vQpUuTNd/fdd/Puu+9y9dVXc/jwYW688UZee+01l2USERGxi4pSIiIiNuvUqVPBdtu2bRk9ejTvvPMOt99+e8G0nvxixI4dO4qMENmxY0eRYkX+tKj8ESkX8/TTT9OyZUtuuumm897mueee47777mP79u3k5OQApqjye/Xq1SM1NbVgZMr51KtXj7lz53L
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Преобразование колонки 'Date' в datetime формат\n",
"df['Date'] = pd.to_datetime(df['Date'])\n",
"\n",
"# Создание новой колонки с месяцами\n",
"df['Month'] = df['Date'].dt.to_period('M')\n",
"\n",
"# Подсчет количества сделок по месяцам\n",
"monthly_transactions: DataFrame | Series[int] = df.groupby('Month').size()\n",
"\n",
"# Визуализация в виде линейной диаграммы\n",
"plt.figure(figsize=(12, 6))\n",
"monthly_transactions.plot(kind='line', marker='o', color='darkorange')\n",
"\n",
"# Добавление легенды\n",
"plt.title('Количество сделок по месяцам')\n",
"plt.xlabel('Месяц')\n",
"plt.ylabel('Количество сделок')\n",
"plt.grid(True)\n",
"plt.xticks(rotation=45)\n",
"\n",
"# Отображение графика\n",
"plt.tight_layout()\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "aimenv",
"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",
2025-02-07 06:02:14 +04:00
"version": "3.12.8"
2024-09-16 03:56:08 +04:00
}
},
"nbformat": 4,
"nbformat_minor": 2
}