427 lines
198 KiB
Plaintext
427 lines
198 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Использованный датасет - Заработная плата рабочих мест в области Data Science - https://www.kaggle.com/datasets/henryshan/2023-data-scientists-salary?resource=download\n",
|
|||
|
"\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:08:35.210532Z",
|
|||
|
"start_time": "2025-01-19T15:08:34.884707Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# 1.1 Загрузка и сохранение данных\n",
|
|||
|
"print(\"Загруженные данные:\")\n",
|
|||
|
"print(data.head())\n",
|
|||
|
"\n",
|
|||
|
"# Сохранение данных в новый файл\n",
|
|||
|
"output_file = 'data/Diamonds_Prices2022_processed.csv'\n",
|
|||
|
"data.to_csv(output_file, index=False)\n",
|
|||
|
"print(f\"Данные сохранены в {output_file}\")\n",
|
|||
|
"\n",
|
|||
|
"# 1.2 Получение сведений о датафрейме\n",
|
|||
|
"print(\"\\nИнформация о датафрейме:\")\n",
|
|||
|
"data.info()\n",
|
|||
|
"\n",
|
|||
|
"# 1.3 Получение сведений о колонках\n",
|
|||
|
"print(\"\\nНазвания колонок:\", data.columns.tolist())\n",
|
|||
|
"\n",
|
|||
|
"# 1.4 Вывод отдельных строк и столбцов\n",
|
|||
|
"print(\"\\nВывод первых 5 строк столбца 'cut':\")\n",
|
|||
|
"print(data['cut'].head())\n",
|
|||
|
"\n",
|
|||
|
"print(\"\\nВывод строк с 10 по 15:\")\n",
|
|||
|
"print(data.iloc[10:15])\n",
|
|||
|
"\n",
|
|||
|
"# 1.5 Группировка и агрегация данных\n",
|
|||
|
"print(\"\\nСредняя цена по качеству огранки (cut):\")\n",
|
|||
|
"print(data.groupby(\"cut\")[\"price\"].mean())\n",
|
|||
|
"\n",
|
|||
|
"# 1.6 Сортировка данных\n",
|
|||
|
"print(\"\\nСортировка данных по цене:\")\n",
|
|||
|
"sorted_data = data.sort_values(by='price', ascending=False)\n",
|
|||
|
"print(sorted_data.head())\n",
|
|||
|
"\n",
|
|||
|
"# 1.7 Удаление строк/столбцов\n",
|
|||
|
"print(\"\\nУдаление столбца 'x' (если он не нужен):\")\n",
|
|||
|
"# Убедитесь, что столбец 'x' существует в данных\n",
|
|||
|
"if 'x' in data.columns:\n",
|
|||
|
" data_without_x = data.drop(columns=['x'], errors='ignore')\n",
|
|||
|
" print(data_without_x.head())\n",
|
|||
|
"else:\n",
|
|||
|
" print(\"Столбец 'x' не найден в данных.\")\n",
|
|||
|
"\n",
|
|||
|
"# 1.8 Создание новых столбцов\n",
|
|||
|
"print(\"\\nДобавление нового столбца 'volume' (объем):\")\n",
|
|||
|
"# Убедитесь, что столбцы 'x', 'y' и 'z' существуют\n",
|
|||
|
"if {'x', 'y', 'z'}.issubset(data.columns):\n",
|
|||
|
" data['volume'] = data['x'] * data['y'] * data['z']\n",
|
|||
|
" print(data.head())\n",
|
|||
|
"else:\n",
|
|||
|
" print(\"Не все столбцы для вычисления объема ('x', 'y', 'z') присутствуют в данных.\")\n",
|
|||
|
"\n",
|
|||
|
"# 1.9 Удаление строк с пустыми значениями\n",
|
|||
|
"print(\"\\nУдаление строк с пустыми значениями:\")\n",
|
|||
|
"cleaned_data = data.dropna()\n",
|
|||
|
"print(cleaned_data.head())\n",
|
|||
|
"\n",
|
|||
|
"# 1.10 Заполнение пустых значений медианой\n",
|
|||
|
"print(\"\\nЗаполнение пустых значений медианой:\")\n",
|
|||
|
"data_filled = data.fillna(data.median(numeric_only=True))\n",
|
|||
|
"print(data_filled.head())\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Загруженные данные:\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z \n",
|
|||
|
"0 2.43 \n",
|
|||
|
"1 2.31 \n",
|
|||
|
"2 2.31 \n",
|
|||
|
"3 2.63 \n",
|
|||
|
"4 2.75 \n",
|
|||
|
"Данные сохранены в data/Diamonds_Prices2022_processed.csv\n",
|
|||
|
"\n",
|
|||
|
"Информация о датафрейме:\n",
|
|||
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|||
|
"RangeIndex: 53943 entries, 0 to 53942\n",
|
|||
|
"Data columns (total 11 columns):\n",
|
|||
|
" # Column Non-Null Count Dtype \n",
|
|||
|
"--- ------ -------------- ----- \n",
|
|||
|
" 0 Unnamed: 0 53943 non-null int64 \n",
|
|||
|
" 1 carat 53943 non-null float64\n",
|
|||
|
" 2 cut 53943 non-null object \n",
|
|||
|
" 3 color 53943 non-null object \n",
|
|||
|
" 4 clarity 53943 non-null object \n",
|
|||
|
" 5 depth 53943 non-null float64\n",
|
|||
|
" 6 table 53943 non-null float64\n",
|
|||
|
" 7 price 53943 non-null int64 \n",
|
|||
|
" 8 x 53943 non-null float64\n",
|
|||
|
" 9 y 53943 non-null float64\n",
|
|||
|
" 10 z 53943 non-null float64\n",
|
|||
|
"dtypes: float64(6), int64(2), object(3)\n",
|
|||
|
"memory usage: 4.5+ MB\n",
|
|||
|
"\n",
|
|||
|
"Названия колонок: ['Unnamed: 0', 'carat', 'cut', 'color', 'clarity', 'depth', 'table', 'price', 'x', 'y', 'z']\n",
|
|||
|
"\n",
|
|||
|
"Вывод первых 5 строк столбца 'cut':\n",
|
|||
|
"0 Ideal\n",
|
|||
|
"1 Premium\n",
|
|||
|
"2 Good\n",
|
|||
|
"3 Premium\n",
|
|||
|
"4 Good\n",
|
|||
|
"Name: cut, dtype: object\n",
|
|||
|
"\n",
|
|||
|
"Вывод строк с 10 по 15:\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"10 11 0.30 Good J SI1 64.0 55.0 339 4.25 4.28 \n",
|
|||
|
"11 12 0.23 Ideal J VS1 62.8 56.0 340 3.93 3.90 \n",
|
|||
|
"12 13 0.22 Premium F SI1 60.4 61.0 342 3.88 3.84 \n",
|
|||
|
"13 14 0.31 Ideal J SI2 62.2 54.0 344 4.35 4.37 \n",
|
|||
|
"14 15 0.20 Premium E SI2 60.2 62.0 345 3.79 3.75 \n",
|
|||
|
"\n",
|
|||
|
" z \n",
|
|||
|
"10 2.73 \n",
|
|||
|
"11 2.46 \n",
|
|||
|
"12 2.33 \n",
|
|||
|
"13 2.71 \n",
|
|||
|
"14 2.27 \n",
|
|||
|
"\n",
|
|||
|
"Средняя цена по качеству огранки (cut):\n",
|
|||
|
"cut\n",
|
|||
|
"Fair 4358.757764\n",
|
|||
|
"Good 3928.864452\n",
|
|||
|
"Ideal 3457.541970\n",
|
|||
|
"Premium 4583.992605\n",
|
|||
|
"Very Good 3981.658529\n",
|
|||
|
"Name: price, dtype: float64\n",
|
|||
|
"\n",
|
|||
|
"Сортировка данных по цене:\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x \\\n",
|
|||
|
"27749 27750 2.29 Premium I VS2 60.8 60.0 18823 8.50 \n",
|
|||
|
"27748 27749 2.00 Very Good G SI1 63.5 56.0 18818 7.90 \n",
|
|||
|
"27747 27748 1.51 Ideal G IF 61.7 55.0 18806 7.37 \n",
|
|||
|
"27746 27747 2.07 Ideal G SI2 62.5 55.0 18804 8.20 \n",
|
|||
|
"27745 27746 2.00 Very Good H SI1 62.8 57.0 18803 7.95 \n",
|
|||
|
"\n",
|
|||
|
" y z \n",
|
|||
|
"27749 8.47 5.16 \n",
|
|||
|
"27748 7.97 5.04 \n",
|
|||
|
"27747 7.41 4.56 \n",
|
|||
|
"27746 8.13 5.11 \n",
|
|||
|
"27745 8.00 5.01 \n",
|
|||
|
"\n",
|
|||
|
"Удаление столбца 'x' (если он не нужен):\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price y z\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.98 2.43\n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.84 2.31\n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.07 2.31\n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.23 2.63\n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.35 2.75\n",
|
|||
|
"\n",
|
|||
|
"Добавление нового столбца 'volume' (объем):\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z volume \n",
|
|||
|
"0 2.43 38.202030 \n",
|
|||
|
"1 2.31 34.505856 \n",
|
|||
|
"2 2.31 38.076885 \n",
|
|||
|
"3 2.63 46.724580 \n",
|
|||
|
"4 2.75 51.917250 \n",
|
|||
|
"\n",
|
|||
|
"Удаление строк с пустыми значениями:\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z volume \n",
|
|||
|
"0 2.43 38.202030 \n",
|
|||
|
"1 2.31 34.505856 \n",
|
|||
|
"2 2.31 38.076885 \n",
|
|||
|
"3 2.63 46.724580 \n",
|
|||
|
"4 2.75 51.917250 \n",
|
|||
|
"\n",
|
|||
|
"Заполнение пустых значений медианой:\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z volume \n",
|
|||
|
"0 2.43 38.202030 \n",
|
|||
|
"1 2.31 34.505856 \n",
|
|||
|
"2 2.31 38.076885 \n",
|
|||
|
"3 2.63 46.724580 \n",
|
|||
|
"4 2.75 51.917250 \n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 2
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:10:00.237216Z",
|
|||
|
"start_time": "2025-01-19T15:09:59.598088Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# 2.1 Линейная диаграмма (Средняя цена по качеству огранки)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data.groupby(\"cut\")[\"price\"].mean().plot(\n",
|
|||
|
" kind=\"line\", title=\"Средняя цена по качеству огранки\"\n",
|
|||
|
")\n",
|
|||
|
"plt.ylabel(\"Средняя цена\")\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.2 Столбчатая диаграмма (Количество бриллиантов по качеству огранки)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data[\"cut\"].value_counts().plot(\n",
|
|||
|
" kind=\"bar\", title=\"Количество бриллиантов по качеству огранки\"\n",
|
|||
|
")\n",
|
|||
|
"plt.ylabel(\"Количество бриллиантов\")\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.3 Гистограмма (Распределение цен)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data[\"price\"].plot(kind=\"hist\", bins=20, title=\"Распределение цен на бриллианты\")\n",
|
|||
|
"plt.xlabel(\"Цена\")\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.4 Ящик с усами (Распределение цен по качеству огранки)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data.boxplot(column=\"price\", by=\"cut\", grid=False, rot=90)\n",
|
|||
|
"plt.title(\"Распределение цен по качеству огранки\")\n",
|
|||
|
"plt.suptitle(\"\")\n",
|
|||
|
"plt.ylabel(\"Цена\")\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.5 Диаграмма с областями (Средняя цена по качеству огранки)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data.groupby(\"cut\")[\"price\"].mean().plot(\n",
|
|||
|
" kind=\"area\", title=\"Средняя цена по качеству огранки\"\n",
|
|||
|
")\n",
|
|||
|
"plt.ylabel(\"Средняя цена\")\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.6 Диаграмма рассеяния (Цена vs. Объем)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"plt.scatter(data['price'], data['volume'], alpha=0.5)\n",
|
|||
|
"plt.title('Диаграмма рассеяния: Цена vs Объем')\n",
|
|||
|
"plt.xlabel('Цена')\n",
|
|||
|
"plt.ylabel('Объем (x * y * z)')\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# 2.7 Круговая диаграмма (Распределение огранок)\n",
|
|||
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
"data[\"cut\"].value_counts().plot(\n",
|
|||
|
" kind=\"pie\", title=\"Распределение огранок\", autopct=\"%1.1f%%\"\n",
|
|||
|
")\n",
|
|||
|
"plt.ylabel(\"\")\n",
|
|||
|
"plt.show()\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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VKxYMYWFhek///mPIiIiNHfuXFWpUsXmfnPnzlW9evX02GOP3fV12fudHjlypIoXL26zLF++fNbfk5OT1bRpUz355JMaP368lixZomHDhikpKUkjR460jps6dapatmypTp06KSEhQfPmzdNzzz2nRYsWqXnz5vf5NO4vMTFR7dq104kTJ/T777+n+/+DVIcPH9ZHH330r58TcCoGADygyMhIQ5KxaNEio2TJkoYko3HjxumOTUhIMAoVKmRUqFDBuHHjhnX5okWLDEnG0KFDbcYnJiYakowRI0akeb5jx45Zl0kyhg0bZr09aNAgo1ChQka1atWMp59+2rp8xIgRhiQjJSXF5nmKFi1qdOnSxXr7f//7n5E7d27j4MGDNuMGDx5suLq6GidOnDAMwzBWrVplSDJ69+6d5rXe+Rx3y55q9erVhiRj9erV1mU3b940XFxcjNdee826rHXr1oa7u7tx5MgR67KYmBjDy8vLeOqpp9I87u26dOliSDK6du1qs3zYsGGGJOPnn3+2LitatKghyfjuu++syy5fvmwEBAQYVapUuetrunnzplGkSBGjWbNmhiQjMjLS5rke9DM1DMP46KOPDEnGX3/9ZV329NNP23ym9jz/9evX07wnX3/9tSHJWLduXZr348KFCzZjt2zZku5rSnXndpjq/Pnzhru7u9G4cWMjOTnZunzGjBmGJOPTTz+96+szDMN4++23DUnG+fPn033e2+9bvnz5NMsnTJhg8x7Zkyc9qe+PYRjG8ePHjYCAAKNOnTo232nDSP/93rhxoyHJ+Pzzz63LunXrZhQpUiTN2Dvfz/DwcCMgIMC4ePGizbj27dsbPj4+1uf79NNPDUnGpEmT0jxmet/L21/PndLbNg8ePGhIMsaPH29d1qFDByMwMNDm/dy+ffs9t5dUD/qdTs2yZcuWuz5W6nf8jTfesHnNzZs3N9zd3W226Ts/n4SEBKNChQpGgwYNbJZLMiIiItI8V/PmzY2iRYtabx87dsz6elNSUoxOnToZuXLlMjZv3mxzv9vHpXr++eeNChUqGEFBQTb/LQayMw5ZBGC3rl276uTJk+rYsaOWLVumb775Js2YrVu36vz583rttddszitr3ry5ypYtq8WLF9uMT0hIkCR5eHg8cI7Tp09r+vTpevfdd5UnTx6bdYUKFZIk6+E9d/PNN9+obt26yps3ry5evGj9CQsLU3JystatWydJ+u6772SxWDRs2LA0j5HRGQsvX76sixcv6sSJExo/frxSUlLUoEEDSf/8y/eyZcvUunVrlShRwnqfgIAAdezYUb/99pvi4+Pv+xwDBw60ud2vXz+5urqmef8DAwPVpk0b621vb2917txZO3bs0NmzZ9N97JkzZ+rvv/9O9z2R7PtMM/L53+v5c+bMaf395s2bunjxop588klJ0vbt29OMj42Ntfn8L1++/MA5brdixQolJCSob9++cnH5v//FvvLKK/L29k7zvicmJurixYu6cOGCNm7cqB9++EGVKlWy7iX8t+zNczd///23mjRpIi8vL/30009pzhW9/f1OTEzU33//reDgYPn6+tq834UKFdL58+etn3d6DMPQd999p2effVaGYdh8Lk2aNNHly5etj/ndd9+pQIECeuONN9I8Tka/l5cuXdLFixd19OhRTZ4
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAHWCAYAAAAYdUqfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRWElEQVR4nO3deVwV5f///+cRBUQFF2RLEtw31KRPROWWJCqlZu8stVwyl9JyKTNaFLPCNLdKs35vFftouZRab/Wt4ZappGnimuYCWQnugLixze8PP8zX48EN0UF43G+3c7sx11xn5jXXGZWn18wcm2EYhgAAAAAAd1wJqwsAAAAAgOKKQAYAAAAAFiGQAQAAAIBFCGQAAAAAYBECGQAAAABYhEAGAAAAABYhkAEAAACARQhkAAAAAGARAhkAALhhKSkpOnDggLKysqwuBQCKBAIZAAC4qszMTI0dO1aNGjWSi4uLKlSooJo1a2rVqlVWlwYARQKBDECxERMTI5vNZr5cXV1Vq1YtDRw4UEePHrW6PKDQuXjxosLCwvTuu++qRYsWWrBggWJjY7V69WqFhoZaXR4AFAklrS4AAO609957T4GBgbpw4YLWr1+vzz//XMuWLdOuXbvk5uZmdXlAofHRRx9p06ZNWrFihVq0aGF1OQBQJBHIABQ7bdu21f333y9JevHFF1WpUiVNmDBB33//vbp06WJxdUDhkJWVpUmTJum1114jjAHAbcQliwCKvUcffVSSlJCQIEk6deqUXn/9dQUFBals2bJyd3dX27ZttX37dof3XrhwQVFRUapVq5ZcXV3l6+urTp066eDBg5KkxMREu8skr3xd/ovu2rVrZbPZNG/ePL311lvy8fFRmTJl1L59e/31118O+960aZPatGkjDw8Pubm5qXnz5tqwYUOex9iiRYs89x8VFeXQd/bs2QoODlbp0qVVsWJFPfvss3nu/1rHdrmcnBxNmjRJ9evXl6urq7y9vdWvXz+dPn3arl9AQIAef/xxh/0MHDjQYZt51T5u3DiHMZUuXXY3cuRI1ahRQy4uLvL399cbb7yhixcv5jlWl2vRooUaNGjg0P7xxx/LZrMpMTHRrj0lJUWDBw+Wv7+/XFxcVKNGDX300UfKyckx++SO28cff+yw3QYNGtxQ+LHZbBo4cKBD++OPP66AgACHWh966CFVqlRJpUuXVnBwsL799tvr7mPfvn06ffq0ypUrp+bNm8vNzU0eHh56/PHHtWvXLru+UVFRstls2rt3rzp37ix3d3dVqlRJgwYN0oULFxxqv9HPTpJ69ux5w+fu1c7Hyz+nG91/RkaGRowYoeDgYHl4eKhMmTJq2rSp1qxZY/feG/08c/98X+uVW1fueJ44ccJhm7kCAgLUs2fPq64HcPdghgxAsZcbnipVqiRJOnTokBYvXqynn35agYGBOnr0qL744gs1b95ce/bskZ+fnyQpOztbjz/+uFatWqVnn31WgwYN0pkzZxQbG6tdu3apevXq5j66dOmidu3a2e03MjIyz3o++OAD2Ww2DR8+XMeOHdOkSZMUFham+Ph4lS5dWpK0evVqtW3bVsHBwRo5cqRKlCihmTNn6tFHH9XPP/+sBx54wGG7VapUUXR0tCQpPT1dL730Up77fvfdd9W5c2e9+OKLOn78uD799FM1a9ZM27ZtU/ny5R3e07dvXzVt2lSStHDhQi1atMhufb9+/RQTE6NevXrp1VdfVUJCgj777DNt27ZNGzZsUKlSpfIch5uRkpJiHtvlcnJy1L59e61fv159+/ZV3bp1tXPnTk2cOFF//PGHFi9efMv7znXu3Dk1b95c//zzj/r166d7771XGzduVGRkpJKSkjRp0qQC29fNmDx5stq3b69u3bopIyNDc+fO1dNPP60lS5YoIiLiqu87efKkpEvnac2aNTVq1ChduHBBU6ZM0cMPP6xff/1VtWrVsntP586dFRAQoOjoaP3yyy/65JNPdPr0aX311VdX3c/VPrvLeXp6auLEieby888/f9W+Tz75pDp16iRJ+vnnn/Xll19ec9tX239aWpr+/e9/q0uXLurTp4/OnDmj6dOnKzw8XJs3b1bjxo2vud0r1a1bV//7v/9rLn/55Zf6/fff7Y6rYcOGN7VNAEWEAQDFxMyZMw1JxsqVK43jx48bf/31lzF37lyjUqVKRunSpY2///7bMAzDuHDhgpGdnW333oSEBMPFxcV47733zLYZM2YYkowJEyY47CsnJ8d8nyRj3LhxDn3q169vNG/e3Fxes2aNIcm45557jLS0NLN9/vz5hiRj8uTJ5rZr1qxphIeHm/sxDMM4d+6cERgYaDz22GMO+3rooYeMBg0amMvHjx83JBkjR4402xITEw0nJyfjgw8+sHvvzp07jZIlSzq079+/35BkzJo1y2wbOXKkcfk/LT///LMhyZgzZ47de5cvX+7QXrVqVSMiIsKh9gEDBhhX/nN1Ze1vvPGG4eXlZQQHB9uN6f/+7/8aJUqUMH7++We790+bNs2QZGzYsMFhf5dr3ry5Ub9+fYf2cePGGZKMhIQEs2306NFGmTJljD/++MOu75tvvmk4OTkZhw8fNgzj5s6Jq5FkDBgwwKE9IiLCqFq1ql3buXPn7JYzMjKMBg0aGI8++ug195F7Pnp6ehonTpww2//44w+jVKlSxlNPPWW25X7u7du3t9vGyy+/bEgytm/fblf7jXx2ubp162YEBgbatV25DcMwjMzMTEOSMWrUKLMt98/85Z/Tje4/KyvLuHjxot0+Tp8+bXh7exsvvPCC2Zbfz7NHjx4On1Wu3PE8fvx4nusN49Kflx49elx1PYC7B5csAih2wsLCVLlyZfn7++vZZ59V2bJltWjRIt1zzz2SJBcXF5Uocemvx+zsbJ08eVJly5ZV7dq19dtvv5nb+e677+Tp6alXXnnFYR9XXmJ3M7p3765y5cqZy//617/k6+urZcuWSZLi4+O1f/9+de3aVSdPntSJEyd04sQJnT17Vq1atdK6devsLpGTLl1a6erqes39Lly4UDk5OercubO5zRMnTsjHx0c1a9Z0uFQrIyND0qXxupoFCxbIw8NDjz32mN02g4ODVbZsWYdtZmZm2vU7ceKEwyVvV/rnn3/06aef6t1331XZsmUd9l+3bl3VqVPHbpu5l6leuf9bsWDBAjVt2lQVKlSw21dYWJiys7O1bt06u/7nzp1zONbs7Owb3t+FCxcc3p+ZmenQL3dWVZJOnz6t1NRUNW3a1O5cvpZevXqZs8eSVLNmTbVv317Lly93qHfAgAF2y7l/NnLP3Std67PLlZGRcc1z7PJ+0rXPx5vZv5OTk5ydnSVdmmk9deqUsrKydP/99+c5drf6eebl1KlT5p9tAEUXlywCKHamTJmiWrVqqWTJkvL29lbt2rXNACZd+uVr8uTJmjp1qhISEux+qbr8F9ODBw+qdu3aKlmyYP8qrVmzpt2yzWZTjRo1zPtg9u/fL0nq0aPHVbeRmpqqChUqmMsnTpxw2O6V9u/fL8MwrtrvyksLU1JSJOmqv0jnbjM1NVVeXl55rj927Jjd8o8//qjKlStfs84rjRw5Un5+furXr5/DvVH79+/X77//ftVtXrn/W7F//37t2LHjhvc1cuRIjRw50qGft7f3De1v+vTpmj59ukN71apV7ZaXLFmi999/X/Hx8Xb3zV3vPw1y19epU8dhXd26dfXdd9/pxIkTdvVeee5Ur15dJUqUcLjXLte1PrtcKSkp1zzHLu8nXft8vNn9z5o1S+PHj9fevXvtwm5gYGCe27qVzzMvtWvXNn/28vJSnz59NGrUKDk5OeV7mwAKHwIZgGLngQceMJ+ymJcPP/xQ7777rl544QWNHj1aFStWVIkSJTR48GCHmScr5NYwbty4q97HcvkvpRkZGUpKStJjjz123e3abDb997//zfMXvit/0U1OTpYk+fj4XHObXl5emjNnTp7rrwwvISEhev/99+3aPvvsM33//fd5vv/3339XTEyMZs+enee9aDk5OQoKCtKECRPyfL+/v/9Va79ZOTk5euy
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 0 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1wAAAHWCAYAAABjUYhTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABebklEQVR4nO3dd3gU1f7H8c8mpFdKSAgJNfQm5SqRIioSrnAFxV5AxQ4qchUuXi7Fn4qigqggVrgieBGxIyX0Fum9hBY6KbSEQOru/P4IGVkDmIUMae/X8+R5smfOzn5nGZL9ZM6cYzMMwxAAAAAAoMi5FXcBAAAAAFBWEbgAAAAAwCIELgAAAACwCIELAAAAACxC4AIAAAAAixC4AAAAAMAiBC4AAAAAsAiBCwAAAAAsQuACAAAAAIsQuAAAAADAIgQuAGXO3r179fTTT6tOnTry9vZWYGCg2rVrp3HjxikjI6O4ywMAAOVIheIuAACK0qxZs3TPPffIy8tLvXv3VtOmTZWdna3ly5frlVde0bZt2/Tpp58Wd5kAAKCcsBmGYRR3EQBQFBISEtS8eXNFRERo4cKFqlatmtP2PXv2aNasWXrxxReLqUIAAFDeMKQQQJkxevRopaen64svvigQtiQpKirKKWzZbDb1799fU6dOVYMGDeTt7a3WrVtr6dKlBZ575MgRPf744woNDZWXl5eaNGmiL7/88qJ1jBgxQjabrcBXp06dnPp16tRJTZs2LfD8d999VzabTfv37zfbcnNz9frrr6t+/fry8vJy2u/atWtd7ncxjz76qPz9/Qu0f/fdd7LZbFq8eLFTe1ZWloYPH66oqCh5eXkpMjJSgwYNUlZWllO//Pf5z7p3765atWoVOPYbb7xRlStXlo+Pj1q3bq3vvvvusnXn69Sp00Xf9/yvC99PSZowYYKaNGkiLy8vhYeHq1+/fjp9+vRfvk7+v++FFi1aJC8vLz3zzDNm24EDB/Tcc8+pQYMG8vHxUeXKlXXPPfcUqOPRRx8t8D5Iee/biBEjnNoKex5mZmZqxIgRql+/vry9vVWtWjXddddd2rt3r/bv33/Z98lms+nRRx+VJE2ePNmp3dfXV82aNdPnn39uvtakSZNks9m0YcOGAnW8+eabcnd315EjRy77nm7YsEF///vfFRgYKH9/f9166636/fffnfr8uZYLvw4fPmy+l/7+/tq3b59iYmLk5+en8PBwvfbaa/rz35cLe64V9vzNf18nT55stp05c0atW7dW7dq1dezYsUv2k6R+/fo5vfcAyg6GFAIoM3755RfVqVNHN954Y6Gfs2TJEk2fPl0vvPCCvLy8NGHCBHXt2lWrV682w1BSUpLatm1rfvAKCQnR7Nmz1bdvX6WlpWnAgAEX3ffHH39sBpghQ4Zc1bG99957+s9//qM777xTgwcPlpeXl5YtW1ZgeGRh+10th8OhO+64Q8uXL9dTTz2lRo0aacuWLRo7dqx27dqlH3/88Yr2O27cON1xxx166KGHlJ2drf/973+655579Ouvv6pbt25/+fyIiAiNGjXKqe23337TN99849Q2YsQIjRw5Up07d9azzz6r+Ph4ffzxx1qzZo1WrFghDw+PQte8adMm9ezZU7fffrvGjx9vtq9Zs0YrV67U/fffr4iICO3fv18ff/yxOnXqpO3bt8vX17fQryEV/jy02+3q3r27FixYoPvvv18vvviizpw5o9jYWG3dulWdO3fWlClTzP1+//33+uGHH5za6tat6/TaY8eOVZUqVZSWlqYvv/xSTz75pGrVqqXOnTvr7rvvVr9+/TR16lS1bNnS6XlTp05Vp06dVL169Use17Zt29ShQwcFBgZq0KBB8vDw0CeffKJOnTppyZIluuGGG5z6v/baa6pdu7ZTW6VKlczv7Xa7unbtqrZt22r06NGaM2eOhg8frtzcXL322mtmv6s91/5KTk6OevXqpYMHD2rFihUX/SNQvj179uizzz676tcEUEIZAFAGpKamGpKMHj16FPo5kgxJxtq1a822AwcOGN7e3sadd95ptvXt29eoVq2acfz4cafn33///UZQUJBx7tw5p/ZXX33VkOTUv0mTJsZNN93k1O+mm24ymjRpUqCud955x5BkJCQkmG3R0dFGo0aNDIfDYbZNmjTJkGSsWbPG5X4X06dPH8PPz69A+4wZMwxJxqJFi8y2KVOmGG5ubsayZcuc+k6cONGQZKxYscJsk2T069evwH67detm1KxZ06ntz+9ldna20bRpU+OWW265bO2GUfj3Mzk52fD09DS6dOli2O12s99HH31kSDK+/PLLy77O8OHDjfxfn/v37zeqVatmtG/f3sjIyLjssRiGYcTFxRmSjK+++spse+yxx4waNWoU6CvJGD58uPm4sOfhl19+aUgyxowZU2CfF54XFzueP8s/dy48F3ft2mVIMkaPHm22PfDAA0Z4eLjT+7l+/XpDkjFp0qSL7jtfz549DU9PT2Pv3r1m29GjR42AgACjY8eOBWq53Hncp08fQ5Lx/PPPOx1zt27dDE9PTyMlJcVsL+y5VtjzNyEhwTxeh8NhPPTQQ4avr6+xatUqp+dd2C/fvffeazRt2tSIjIw0+vTpc8njA1A6MaQQQJmQlpYmSQoICHDpedHR0WrdurX5uEaNGurRo4fmzp0ru90uwzA0c+ZM/eMf/5BhGDp+/Lj5FRMTo9TUVK1fv95pn5mZmZIkb2/vv3x9u93utM/jx4/r3LlzBfqdOXNGFStWLDCU7Ur7Xa0ZM2aoUaNGatiwoVPtt9xyi6S8IXYXyszMLHCcOTk5Bfbr4+Njfn/q1CmlpqaqQ4cOBd7jqzF//nxlZ2drwIABcnP749fgk08+qcDAQM2aNatQ+zlx4oRiYmIUEBCgn3/+ucC/94XHkpOToxMnTigqKkrBwcFOx1O1alUlJycrOzv7kq/lynk4c+ZMValSRc8//3yB/VzpeXHq1CkdP35c+/bt09ixY+Xu7q6bbrrJ3N67d28dPXrU6d996tSp8vHxUa9evS65X7vdrnnz5qlnz56qU6eO2V6tWjU9+OCDWr58ufl/2xUXDgHMvyKYnZ2t+fPnm+2unGuFPX/zvfLKK5o6daq+/fZbXX/99Zetdd26dZoxY4ZGjRrldD4CKDsYUgigTAgMDJSUFzhcUa9evQJt9evX17lz55SSkiI3NzedPn1an3766SWH5SUnJzs9Pn78uDw8PAo1ZGznzp0KCQn5y37R0dH6/PPP9cknn6h79+7y8vJSenr6Ffe7Wrt379aOHTsuWfuf35MvvvhCX3zxRYF+NWvWdHr866+/6vXXX9fGjRud7gUrygB54MABSVKDBg2c2j09PVWnTh1z+1/p3r274uPjVbVq1QL3B0lSRkaGRo0apUmTJunIkSNOfVJTU83vb7zxRr399tsaOnSoXnjhhYsG9ZSUlEKfh3v37lWDBg1UoULR/Ypv1aqV+b2Xl5c++ugjpyBx2223qVq1apo6dapuvfVWORwOffPNN+rRo8dl/wiSkpKic+fOFfi3kKRGjRrJ4XDo0KFDatKkSaFrdXNzcwpvUt7/aUlO98+5cq4V9vyVpE8++cS8/+zUqVN/We+//vUvdejQQd27d7/ovWIASj8CF4AyITAwUOHh4dq6dWuR7tfhcEiSHn74YfXp0+eifZo3b+70eP/+/apRo0ahQkKtWrUK3LsxY8aMAh+qR40apSNHjjhNynAxhe13tRwOh5o1a6YxY8ZcdHtkZKTT4x49ehT4MDl06FAlJiaaj5ctW6Y77rhDHTt21IQJE1StWjV5eHho0qRJmjZtWtEfxFXauXOnZs+erXvvvVf//Oc/NWnSJKftzz//vCZNmqQBAwYoOjpaQUFBstlsuv/++83zSpLuuOMOPf7443rnnXf0zjvvXPS1ruQ8LEpff/21QkNDlZmZqYULF6pfv37y9vY2J3hwd3fXgw8+qM8++0wTJkzQihUrdPToUT388MOW1XQ1XD3XCnP+5vv999/1xhtvaM2aNXrppZfUtWtXValS5aJ1zJs3T/Pnz1dcXFzRHBi
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"ename": "KeyError",
|
|||
|
"evalue": "'volume'",
|
|||
|
"output_type": "error",
|
|||
|
"traceback": [
|
|||
|
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
|
|||
|
"\u001B[1;31mKeyError\u001B[0m Traceback (most recent call last)",
|
|||
|
"File \u001B[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\indexes\\base.py:3805\u001B[0m, in \u001B[0;36mIndex.get_loc\u001B[1;34m(self, key)\u001B[0m\n\u001B[0;32m 3804\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m-> 3805\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_engine\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_loc\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcasted_key\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 3806\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mKeyError\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m err:\n",
|
|||
|
"File \u001B[1;32mindex.pyx:167\u001B[0m, in \u001B[0;36mpandas._libs.index.IndexEngine.get_loc\u001B[1;34m()\u001B[0m\n",
|
|||
|
"File \u001B[1;32mindex.pyx:196\u001B[0m, in \u001B[0;36mpandas._libs.index.IndexEngine.get_loc\u001B[1;34m()\u001B[0m\n",
|
|||
|
"File \u001B[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7081\u001B[0m, in \u001B[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001B[1;34m()\u001B[0m\n",
|
|||
|
"File \u001B[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7089\u001B[0m, in \u001B[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001B[1;34m()\u001B[0m\n",
|
|||
|
"\u001B[1;31mKeyError\u001B[0m: 'volume'",
|
|||
|
"\nThe above exception was the direct cause of the following exception:\n",
|
|||
|
"\u001B[1;31mKeyError\u001B[0m Traceback (most recent call last)",
|
|||
|
"Cell \u001B[1;32mIn[4], line 48\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[38;5;66;03m# 2.6 Диаграмма рассеяния (Цена vs. Объем)\u001B[39;00m\n\u001B[0;32m 47\u001B[0m plt\u001B[38;5;241m.\u001B[39mfigure(figsize\u001B[38;5;241m=\u001B[39m(\u001B[38;5;241m10\u001B[39m, \u001B[38;5;241m5\u001B[39m))\n\u001B[1;32m---> 48\u001B[0m plt\u001B[38;5;241m.\u001B[39mscatter(data[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mprice\u001B[39m\u001B[38;5;124m'\u001B[39m], \u001B[43mdata\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mvolume\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m, alpha\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m0.5\u001B[39m)\n\u001B[0;32m 49\u001B[0m plt\u001B[38;5;241m.\u001B[39mtitle(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mДиаграмма рассеяния: Цена vs Объем\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m 50\u001B[0m plt\u001B[38;5;241m.\u001B[39mxlabel(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mЦена\u001B[39m\u001B[38;5;124m'\u001B[39m)\n",
|
|||
|
"File \u001B[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\frame.py:4090\u001B[0m, in \u001B[0;36mDataFrame.__getitem__\u001B[1;34m(self, key)\u001B[0m\n\u001B[0;32m 4088\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mcolumns\u001B[38;5;241m.\u001B[39mnlevels \u001B[38;5;241m>\u001B[39m \u001B[38;5;241m1\u001B[39m:\n\u001B[0;32m 4089\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_getitem_multilevel(key)\n\u001B[1;32m-> 4090\u001B[0m indexer \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mcolumns\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_loc\u001B[49m\u001B[43m(\u001B[49m\u001B[43mkey\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 4091\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m is_integer(indexer):\n\u001B[0;32m 4092\u001B[0m indexer \u001B[38;5;241m=\u001B[39m [indexer]\n",
|
|||
|
"File \u001B[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\indexes\\base.py:3812\u001B[0m, in \u001B[0;36mIndex.get_loc\u001B[1;34m(self, key)\u001B[0m\n\u001B[0;32m 3807\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(casted_key, \u001B[38;5;28mslice\u001B[39m) \u001B[38;5;129;01mor\u001B[39;00m (\n\u001B[0;32m 3808\u001B[0m \u001B[38;5;28misinstance\u001B[39m(casted_key, abc\u001B[38;5;241m.\u001B[39mIterable)\n\u001B[0;32m 3809\u001B[0m \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;28many\u001B[39m(\u001B[38;5;28misinstance\u001B[39m(x, \u001B[38;5;28mslice\u001B[39m) \u001B[38;5;28;01mfor\u001B[39;00m x \u001B[38;5;129;01min\u001B[39;00m casted_key)\n\u001B[0;32m 3810\u001B[0m ):\n\u001B[0;32m 3811\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m InvalidIndexError(key)\n\u001B[1;32m-> 3812\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mKeyError\u001B[39;00m(key) \u001B[38;5;28;01mfrom\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21;01merr\u001B[39;00m\n\u001B[0;32m 3813\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mTypeError\u001B[39;00m:\n\u001B[0;32m 3814\u001B[0m \u001B[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001B[39;00m\n\u001B[0;32m 3815\u001B[0m \u001B[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001B[39;00m\n\u001B[0;32m 3816\u001B[0m \u001B[38;5;66;03m# the TypeError.\u001B[39;00m\n\u001B[0;32m 3817\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_check_indexing_error(key)\n",
|
|||
|
"\u001B[1;31mKeyError\u001B[0m: 'volume'"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x500 with 0 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 4
|
|||
|
},
|
|||
|
{
|
|||
|
"metadata": {},
|
|||
|
"cell_type": "code",
|
|||
|
"outputs": [],
|
|||
|
"execution_count": null,
|
|||
|
"source": ""
|
|||
|
}
|
|||
|
],
|
|||
|
"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.8"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|