AIM-PIbd-32-Filippov-D-S/Lab_1/lab1.ipynb

659 lines
148 KiB
Plaintext
Raw Permalink Normal View History

2024-12-05 20:05:37 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Начало лабораторной работы №1\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Набор данных \"Наблюдения НЛО в США\"."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Загрузка и сохранение данных"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>summary</th>\n",
" <th>city</th>\n",
" <th>state</th>\n",
" <th>date_time</th>\n",
" <th>shape</th>\n",
" <th>duration</th>\n",
" <th>stats</th>\n",
" <th>report_link</th>\n",
" <th>text</th>\n",
" <th>posted</th>\n",
" <th>city_latitude</th>\n",
" <th>city_longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Viewed some red lights in the sky appearing to...</td>\n",
" <td>Visalia</td>\n",
" <td>CA</td>\n",
" <td>2021-12-15T21:45:00</td>\n",
" <td>light</td>\n",
" <td>2 minutes</td>\n",
" <td>Occurred : 12/15/2021 21:45 (Entered as : 12/...</td>\n",
" <td>http://www.nuforc.org/webreports/165/S165881.html</td>\n",
" <td>Viewed some red lights in the sky appearing to...</td>\n",
" <td>2021-12-19T00:00:00</td>\n",
" <td>36.356650</td>\n",
" <td>-119.347937</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Look like 1 or 3 crafts from North traveling s...</td>\n",
" <td>Cincinnati</td>\n",
" <td>OH</td>\n",
" <td>2021-12-16T09:45:00</td>\n",
" <td>triangle</td>\n",
" <td>14 seconds</td>\n",
" <td>Occurred : 12/16/2021 09:45 (Entered as : 12/...</td>\n",
" <td>http://www.nuforc.org/webreports/165/S165888.html</td>\n",
" <td>Look like 1 or 3 crafts from North traveling s...</td>\n",
" <td>2021-12-19T00:00:00</td>\n",
" <td>39.174503</td>\n",
" <td>-84.481363</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>seen dark rectangle moving slowly thru the sky...</td>\n",
" <td>Tecopa</td>\n",
" <td>CA</td>\n",
" <td>2021-12-10T00:00:00</td>\n",
" <td>rectangle</td>\n",
" <td>Several minutes</td>\n",
" <td>Occurred : 12/10/2021 00:00 (Entered as : 12/...</td>\n",
" <td>http://www.nuforc.org/webreports/165/S165810.html</td>\n",
" <td>seen dark rectangle moving slowly thru the sky...</td>\n",
" <td>2021-12-19T00:00:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>One red light moving switly west to east, beco...</td>\n",
" <td>Knoxville</td>\n",
" <td>TN</td>\n",
" <td>2021-12-10T19:30:00</td>\n",
" <td>triangle</td>\n",
" <td>20-30 seconds</td>\n",
" <td>Occurred : 12/10/2021 19:30 (Entered as : 12/...</td>\n",
" <td>http://www.nuforc.org/webreports/165/S165825.html</td>\n",
" <td>One red light moving switly west to east, beco...</td>\n",
" <td>2021-12-19T00:00:00</td>\n",
" <td>35.961561</td>\n",
" <td>-83.980115</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bright, circular Fresnel-lens shaped light sev...</td>\n",
" <td>Alexandria</td>\n",
" <td>VA</td>\n",
" <td>2021-12-07T08:00:00</td>\n",
" <td>circle</td>\n",
" <td>NaN</td>\n",
" <td>Occurred : 12/7/2021 08:00 (Entered as : 12/0...</td>\n",
" <td>http://www.nuforc.org/webreports/165/S165754.html</td>\n",
" <td>Bright, circular Fresnel-lens shaped light sev...</td>\n",
" <td>2021-12-19T00:00:00</td>\n",
" <td>38.798958</td>\n",
" <td>-77.095133</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" summary city state \\\n",
"0 Viewed some red lights in the sky appearing to... Visalia CA \n",
"1 Look like 1 or 3 crafts from North traveling s... Cincinnati OH \n",
"2 seen dark rectangle moving slowly thru the sky... Tecopa CA \n",
"3 One red light moving switly west to east, beco... Knoxville TN \n",
"4 Bright, circular Fresnel-lens shaped light sev... Alexandria VA \n",
"\n",
" date_time shape duration \\\n",
"0 2021-12-15T21:45:00 light 2 minutes \n",
"1 2021-12-16T09:45:00 triangle 14 seconds \n",
"2 2021-12-10T00:00:00 rectangle Several minutes \n",
"3 2021-12-10T19:30:00 triangle 20-30 seconds \n",
"4 2021-12-07T08:00:00 circle NaN \n",
"\n",
" stats \\\n",
"0 Occurred : 12/15/2021 21:45 (Entered as : 12/... \n",
"1 Occurred : 12/16/2021 09:45 (Entered as : 12/... \n",
"2 Occurred : 12/10/2021 00:00 (Entered as : 12/... \n",
"3 Occurred : 12/10/2021 19:30 (Entered as : 12/... \n",
"4 Occurred : 12/7/2021 08:00 (Entered as : 12/0... \n",
"\n",
" report_link \\\n",
"0 http://www.nuforc.org/webreports/165/S165881.html \n",
"1 http://www.nuforc.org/webreports/165/S165888.html \n",
"2 http://www.nuforc.org/webreports/165/S165810.html \n",
"3 http://www.nuforc.org/webreports/165/S165825.html \n",
"4 http://www.nuforc.org/webreports/165/S165754.html \n",
"\n",
" text posted \\\n",
"0 Viewed some red lights in the sky appearing to... 2021-12-19T00:00:00 \n",
"1 Look like 1 or 3 crafts from North traveling s... 2021-12-19T00:00:00 \n",
"2 seen dark rectangle moving slowly thru the sky... 2021-12-19T00:00:00 \n",
"3 One red light moving switly west to east, beco... 2021-12-19T00:00:00 \n",
"4 Bright, circular Fresnel-lens shaped light sev... 2021-12-19T00:00:00 \n",
"\n",
" city_latitude city_longitude \n",
"0 36.356650 -119.347937 \n",
"1 39.174503 -84.481363 \n",
"2 NaN NaN \n",
"3 35.961561 -83.980115 \n",
"4 38.798958 -77.095133 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Чтобы загрузить данные из CSV файла:\n",
"\n",
"df = pd.read_csv('datasets/nuforc_reports.csv')\n",
"df.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Получение сведений о датафрейме с данными"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 136940 entries, 0 to 136939\n",
"Data columns (total 12 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 summary 136866 non-null object \n",
" 1 city 136558 non-null object \n",
" 2 state 127595 non-null object \n",
" 3 date_time 134272 non-null object \n",
" 4 shape 131018 non-null object \n",
" 5 duration 130448 non-null object \n",
" 6 stats 136940 non-null object \n",
" 7 report_link 136940 non-null object \n",
" 8 text 136902 non-null object \n",
" 9 posted 134272 non-null object \n",
" 10 city_latitude 110136 non-null float64\n",
" 11 city_longitude 110136 non-null float64\n",
"dtypes: float64(2), object(10)\n",
"memory usage: 12.5+ MB\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>city_latitude</th>\n",
" <th>city_longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>110136.000000</td>\n",
" <td>110136.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>38.704608</td>\n",
" <td>-95.185792</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>5.752186</td>\n",
" <td>18.310088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-32.055500</td>\n",
" <td>-170.494000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>34.238375</td>\n",
" <td>-113.901810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>39.257500</td>\n",
" <td>-89.161450</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>42.317739</td>\n",
" <td>-80.363444</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>64.845276</td>\n",
" <td>130.850580</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" city_latitude city_longitude\n",
"count 110136.000000 110136.000000\n",
"mean 38.704608 -95.185792\n",
"std 5.752186 18.310088\n",
"min -32.055500 -170.494000\n",
"25% 34.238375 -113.901810\n",
"50% 39.257500 -89.161450\n",
"75% 42.317739 -80.363444\n",
"max 64.845276 130.850580"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Получить общую информацию о датафрейме можно с помощью:\n",
"df.info()\n",
"#Для получения статистического описания числовых колонок:\n",
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Получение сведений о колонках датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['summary', 'city', 'state', 'date_time', 'shape', 'duration', 'stats',\n",
" 'report_link', 'text', 'posted', 'city_latitude', 'city_longitude'],\n",
" dtype='object')\n"
]
}
],
"source": [
"#Вывести названия колонок:\n",
"print(df.columns)\n",
"\n",
"#Получить уникальные значения в колонке:\n",
"unique_values = df['city'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Вывод отельных строки и столбцов из датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"\n",
"#Для вывода отдельных строк можно использовать iloc или loc:\n",
"\n",
"# Вывод первой строки\n",
"first_row = df.iloc[0]\n",
"\n",
"# Вывод строк с 0 по 4\n",
"first_five_rows = df.iloc[0:5]\n",
"\n",
"# Вывод по метке индекса\n",
"row_by_label = df.loc[0]\n",
"\n",
"# Вывод определенного столбца\n",
"specific_column = df['city']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Группировка и агрегация данных в датафрейме"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"#Для группировки данных можно использовать groupby:\n",
"grouped = df.groupby('city').agg({'state': 'sum'})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### сортировка данных в датафрейме"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#Для сортировки данных по определенной колонке:\n",
"sorted_df = df.sort_values(by='city', ascending=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### удаление строк/столбцов"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"#Для удаления строк:\n",
"\n",
"# Удаление строки по индексу\n",
"df = df.drop(24)\n",
"\n",
"# Удаление нескольких строк\n",
"df = df.drop([1, 2, 3])\n",
"\n",
"\n",
"#Для удаления столбцов:\n",
"\n",
"# Удаление столбца\n",
"df = df.drop(\"summary\", axis=1)\n",
"\n",
"# Удаление нескольких столбцов\n",
"df = df.drop(['shape', 'duration'], axis=1)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### создание новых столбцов на основе данных из существующих столбцов датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"#Создание нового столбца на основе существующих:\n",
"df['new_columnStateCity'] = df['state'] + df['city']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### удаление строк с пустыми значениями"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#Для удаления строк с хотя бы одним пустым значением:\n",
"df = df.dropna()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### заполнение пустых значений на основе существующих данных"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# Заполнение средним значением\n",
"df['city_latitude'] = df['city_latitude'].fillna(df['city_latitude'].mean())\n",
"\n",
"# Заполнение фиксированным значением\n",
"df['state'] = df['state'].fillna(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Линейная диаграмма (plot)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv('datasets/nuforc_reports.csv')\n",
"\n",
"# Пример: Линейная диаграмма количества отчетов по годам\n",
"df['year'] = pd.to_datetime(df['date_time']).dt.year\n",
"yearly_counts = df['year'].value_counts().sort_index()\n",
"\n",
"plt.plot(yearly_counts.index, yearly_counts.values)\n",
"plt.title('Количество UFO отчетов по годам')\n",
"plt.xlabel('Год')\n",
"plt.ylabel('Количество отчетов')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Пример: Столбчатая диаграмма количества отчетов по штатам\n",
"state_counts = df['state'].value_counts().head(15)\n",
"\n",
"state_counts.plot(kind='bar')\n",
"plt.title('Топ-10 штатов по количеству UFO отчетов')\n",
"plt.xlabel('Штат')\n",
"plt.ylabel('Количество отчетов')\n",
"plt.xticks(rotation=45)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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U089pa1btyojI0PSpTNWLi6X/im5ePGiTp48KS8vLzVq1Eg//PBDoW1GR0fLZrPp888/lyR9++23Onz4sPr27XvVPgYPHqxFixYpNzdX0qXLKQ8//LB8fHwK1Xp6epo/Z2dn68SJE+rYsaN++uknZWdn3/AxKK7XX39dPj4++vOf/1zk+goVKujpp582H7u5uenpp5/WsWPHlJKSIkn64osvFBAQoH79+pl1FStW1J///GedPn1aSUlJxeqt4LicOnWqWM+34kZ779Wrl+644w7zcZs2bdS2bVt98cUXkqSjR48qNTVVAwcOdPjARfPmzfXAAw+YdZc7d+5ckWcjr1Ra3jMo/QhNwE2WnZ2tN954Q3FxceZlhgI//fSTJKlp06a/+3V+/vlnSVKjRo0KrWvcuLG5/kbUr1+/UHhr2LChJJn3a+Xn52vatGlq0KCB3N3dVaNGDdWsWVPbt28v8g9OxYoV9cQTT2j+/PmSpPnz56tPnz7y9va+ah9RUVGqUKGCPvvsM+Xk5Ojjjz/WoEGDiqzdsGGDIiIizHteatasqZdeekmSbtkfwPT0dM2dO1eTJk266h/twMBAVa5c2WHsymP7888/q0GDBmYoLVBwObY4v1NJioiIUM2aNeXt7a2qVavq2WefVU5OTrG2dTU32nuDBg0KbaNhw4YOx0Iq+v3dpEkTnThxotA+nDhxoshgfaXS8J5B2cA9TcBN9tZbb8nFxUUvvviiTp486ex2Stwbb7yhV199VYMHD9brr7+uatWqycXFRSNGjFB+fn6Rzxk8eLBatmyptLQ0LV261DzrdDUFQWvBggU6c+aMqlevri5dujjctyNJ+/fvV9euXdW4cWO98847CgoKkpubm7744gtNmzbtqv2UtJdfflkNGjTQgAED9O23396S17wRs2bNUsOGDZWbm6t169bp7bffliS9//77Tu6s5OTl5eno0aPmvXdXU1reMygbCE3ATXTkyBHNmDFD8fHxqlKlSqHQdOedd0pSkZ8SulF169aVJKWlpalLly4O69LS0sz1N+LHH3+UYRgOZ5v+97//SZJ50+0nn3yizp076+9//7vDc7OyslSjRo0it9usWTO1bNnS/MRg586dr3upafDgwWrRooUOHTqkAQMGFHn5csWKFcrNzdXnn3/ucLnzm2++sbS/JWHr1q1avHixli9fLldX16vWHTlyRDk5OQ5nm648tnXr1tX27duVn5/vcMZm79695vriaNOmjTllRlRUlLZt26bVq1cXa1tXc6O979u3r9A2/ve//zkcC+nSe/lKe/fuVY0aNRyO5bZt23T+/PnrTg1SGt4zKDu4PAfcRJMmTZK/v7+eeeaZItfXrFlTHTp00Pz583Xw4EGHdYZh3NBrtWrVSn5+fpozZ455748kffnll9qzZ4+ioqJuuP8jR45o2bJl5mO73a5//OMfCg0NVUBAgCTJ1dW1UK9Lly4tNM3BlQYPHqzt27eb0wpcz913362wsDDt3r3b/Aj9lQpCyuX9ZGdna8GCBdfdfkkZO3as2rdvrz/84Q/XrLtw4YLmzp1rPs7Ly9PcuXNVs2ZNhYWFSZJ69uypjIwMLVmyxOF57733nry8vNSxY8cS6Tk/P/+aAa84brT35cuXO7xnvv/+e23atEk9evSQJNWqVUuhoaH
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"# Гистограмма распределения географической широты\n",
"plt.hist(df['city_latitude'].dropna(), bins=30, color='blue', alpha=0.7)\n",
"plt.title('Гистограмма широты города')\n",
"plt.xlabel('Широта')\n",
"plt.ylabel('Частота')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj8AAAHHCAYAAABQhTneAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABpPElEQVR4nO3dd3hT5R4H8G9Gk3Ql3QMotAzZQ6YFBZRCWeJERFSGCldQVHCAg6FXwQGiMhSvF1BQuTjQyxUFERxYARnKrIyWVqAtnenKPO/9oyY2bdqmpW2a5vt5njzQc95zzi8n4/zyriMTQggQEREReQm5uwMgIiIiakxMfoiIiMirMPkhIiIir8Lkh4iIiLwKkx8iIiLyKkx+iIiIyKsw+SEiIiKvwuSHiIiIvAqTHyKiWiouLkZ6ejry8vLcHQoR1QGTHyIiF2zZsgXDhg1DYGAgAgIC0Lp1a7zyyivuDqvJW7lyJfLz8+1/r1ixAsXFxe4LiAhMfqr0ySefQCaTOX1069bN3eERucWiRYsgk8mQnZ3tdH23bt0wdOhQ+9+pqalVfo6uueaaSttv27YNI0eORGhoKDQaDa666io8/vjjyMnJaain5JJ58+bhjjvuQGBgIN59913s3LkT3377LWbOnOnWuDzBf//7XyxatAjp6enYtGkTnnvuOfj6+ro7LPJySncH0NQ9/fTT6Ny5s/3vF1980Y3REHmmiRMnYvTo0Q7LwsPDHf5+/PHHsWzZMvTs2RNPPfUUQkJCcOjQIaxcuRIff/wxdu3ahY4dOzZm2ACA77//Hi+//DKWLFmCefPmNfrxPd3TTz+NcePG4Y033oBcLseyZcsgl/N3N7kXk58aDB8+3OGX7L/+9a8qf/USkXO9e/fG3XffXeX6jz76CMuWLcOECROwadMmKBQK+7opU6bg+uuvx/jx43Ho0CEolY37tfXaa69h4MCBTHzqaMiQITh//jxOnjyJmJgYtGrVyt0hEbHZqyomkwkAXPqFsn79eshkMqSmptqXSZKEHj16QCaTYf369fblv//+O6ZMmYK2bdtCo9EgKioK06ZNq1Stb2teqPgo/8U/dOhQdOvWDQcPHsTAgQPh6+uLuLg4vP3225Wey4IFC9CnTx/odDr4+/vjuuuuw+7dux3KlW+i2Lp1q8M6g8GA4OBgyGQyvPbaa5XijIiIgNlsdtjmo48+su+vfML4xRdfYMyYMWjRogXUajXatWuHF154AVartcZzbTveqVOncMcdd0Cr1SI0NBSPPPIIDAaDQ9l169bhhhtuQEREBNRqNbp06YI1a9Y43e/27dsxZMgQBAYGQqvVol+/fvjwww8dyuzbtw+jR49GcHAw/P390aNHD7zxxhsOZU6dOoXbb78dISEh0Gg06Nu3L7788stKxzt8+DBGjhyJ8PBwh9d37Nix9jK299Wvv/7qsG12djZkMhkWLVpU6byUV1RUhKioKMhkMuzZs8dh3Zo1a9CtWzf4+fk5HP+TTz5xen4a2uLFixEcHIy1a9c6JD4A0L9/fzz11FM4evRojfFV1Sz366+/1vmz+Msvv6Bbt2648847ERISAl9fX/Tr16/SZ8RmypQpTj+7Nb1emzZtQq9evaDRaBAaGoqJEyciLS3N6TFiY2OdHqP88wPKvodWrFiBrl27QqPRIDIyEjNmzKjUUTs2NtbhvWfz0EMPVYqz4nMBgFdffRUymczhh+KePXvs772goCDEx8ejVatWGDNmjNN9VGTbvqrHlClTHMqfO3cO48ePR0hICPz8/HDNNdfgf//7X7XHqOo5WSwWjB49GiEhIThx4oTD8hdeeAHt2rWDWq1GbGwsnn76aRiNxkr7XL16Nbp27Qq1Wo0WLVpg1qxZDn2fANe/w22qui6UP++2/VZcduDAAXv5is/9oYceqnSssWPHIjY21mGZ7YdAaGgofH190adPn0qfyepes/KxNuR1yRWs+amCLflRq9V12v6DDz7A0aNHKy3fuXMnzp07h6lTpyIqKgrHjx/H2rVrcfz4cfzyyy+V3phr1qxBQECA/e+KyVheXh5Gjx6NO+64AxMnTsR//vMfPPjgg1CpVJg2bRoAQK/X41//+hcmTpyIBx54AIWFhXjvvfeQmJiI/fv3o1evXg771Gg0WLduHW6++Wb7ss8++6xSclFeYWEhtm3bhltuucW+bN26ddBoNJW2W79+PQICAjBnzhwEBATgu+++w4IFC6DX6/Hqq69WeYzy7rjjDsTGxmLJkiX45Zdf8OabbyIvLw/vv/++w7nr2rUrxo0bB6VSif/+97+YOXMmJEnCrFmzHOKZNm0aunbtivnz5yMoKAiHDx/G119/jbvuugtA2es2duxYREdH45FHHkFUVBROnjyJbdu24ZFHHgEAHD9+HIMGDULLli0xb948+Pv74z//+Q9uvvlmfPrpp/ZzU1BQgFGjRkEIgTlz5iAmJgYA8Nhjj7n03F21bNkyZGZmVlq+efNmzJw5E0OHDsXDDz8Mf39/nDx5Ei+99FK9Hr+8kpKSSgmJTqeDj48PTp8+jeTkZEyZMgVardbp9vfeey8WLlyIbdu24c4776yXmFz9LObk5GDt2rUICAjA7NmzER4ejo0bN+LWW2/Fpk2bMHHixEr7DgsLw+uvv27/+5577qk2lg8//BB33303evbsiSVLliAnJwdvvvkmfvrpJxw+fBhhYWGVtunVqxfmzp0LAEhJScGCBQsqlZkxYwbWr1+PqVOnYvbs2UhJScHKlStx+PBh7N27Fz4+PrU6Z87k5+djyZIlLpX94Ycf8NVXX9Vq/7Nnz0a/fv0clt1///0Of2dmZmLgwIEoKSnB7NmzERoaig0bNmDcuHH45JNPHL6XXHH//fdjz5492LlzJ7p06eKwfMOGDbj99tsxd+5c7Nu3D0uWLMHJkyfx+eef28stWrQIixcvRkJCAh588EEkJydjzZo1OHDgQKXz7sp3eEXlrwvz58936Tk99dRTtToHzrzxxhsYN24cJk2aBJPJhI8//hjjx4/Htm3bMGbMGABl1z6bH3/8EWvXrsXrr79ufw9HRkYCaJzrUrUEObVixQoBQPz2228Oy4cMGSK6du3qsGzdunUCgEhJSRFCCGEwGETr1q3FqFGjBACxbt06e9mSkpJKx/roo48EAPHDDz/Yly1cuFAAEJcvX64yxiFDhggAYtmyZfZlRqNR9OrVS0RERAiTySSEEMJisQij0eiwbV5enoiMjBTTpk2zL0tJSREAxMSJE4VSqRQZGRn2dcOGDRN33XWXACBeffXVSnFOnDhRjB071r78/PnzQi6Xi4kTJ1Z6Hs7OwYwZM4Sfn58wGAxVPt/yxxs3bpzD8pkzZ1Z6vZwdJzExUbRt29b+d35+vggMDBQDBgwQpaWlDmUlSRJClJ2/uLg40aZNG5GXl+e0jBBl56h79+4Oz0GSJDFw4EDRoUMH+7JvvvlGABAfffSRw77atGkjxowZY//b9r46cOCAQ7nLly8LAGLhwoWVzotNVlaWCAwMtL8Hd+/ebV83ceJEERQU5PB8d+/eLQCILVu2VDpn5dX0vuzatasYMmSI/W/be8rZwxbT1q1bBQDx+uuvV3tsrVYrevfuXaf4Dhw4UOfPoi3ePXv2OGzbuXNnERUVZf+c2UyaNEnExcU5LKvu9bJYLCIyMlK0a9dOFBUV2cvs2bNHABBz586tFGeLFi0cPm/Ont+PP/4oAIhNmzY5bPv1119XWl7xvWcza9Ysh/eVs+fy5JNPioiICNGnTx+H1972nir/3hswYID9PVl+H85U95709/cXkydPtv/96KOPCgDixx9/tC8rLCwUcXFxIjY2Vlit1mqPVT6e+fPnC4VCIbZu3epQ5siRIwKAuP/++x2WP/744wKA+O6774QQZZ89lUolRowY4XDclStXCgDi3//+t32Zq9/hNk8//bQAILKzs+3LKn7mbPstv+yrr74SAMTIkSOdvp6zZs2qdE7GjBkj2rRp47Cs4mfGZDKJbt26iRtuuKHS9kJUvjaW15DXJVew2asKtqrvip0yXbFq1Srk5ORg4cK
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Пример: Диаграмма рассеяния по координатам географической широты\n",
"plt.scatter(df['city_longitude'].dropna(), df['city_latitude'].dropna(), alpha=0.5)\n",
"plt.title('Диаграмма рассеяния UFO наблюдений по координатам')\n",
"plt.xlabel('Долгота')\n",
"plt.ylabel('Широта')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}