{ "cells": [ { "cell_type": "markdown", "id": "a83d3451", "metadata": {}, "source": [ "# Лабораторная работа №3" ] }, { "cell_type": "markdown", "id": "c4626d84", "metadata": {}, "source": [ "Данная лабораторная предназначена для ознакомления с основными модулями Python используемыми в анализе данных.\n", "\n", "NumPy - модуль предназначенный для работы с многомерными массивами. Почитать можно [здесь](https://pythonworld.ru/numpy)\n", "\n", "Matplotlib - пакет модулей предназначенный для визуализации данных. Почитать можно [здесь](https://pythonworld.ru/novosti-mira-python/scientific-graphics-in-python.html) \n", "\n", "Pandas - модуль для анализа данных и поддерживающий их табличное представление. Почитать можно [здесь](https://pythonworld.ru/obrabotka-dannyx/pandas-cookbook-1-csv-reading.html)\n", "\n", "Для углубленного изучения можно почитать книгу Дж. Вандел Плас Python для сложных задач наука о данных:\n", "\n" ] }, { "cell_type": "markdown", "id": "044a3a41", "metadata": {}, "source": [ "## NumPy\n", "\n", "Данный модуль создан для ускорения работы с массивами больших размерностей. Для примера рассмотрим сравнение скорости подсчета суммы случайного ряда при помощи встроенных инструментов и инструментов numpy:" ] }, { "cell_type": "code", "execution_count": 1, "id": "fb97f953", "metadata": {}, "outputs": [], "source": [ "# импортируем модуль и создадим ему короткий псевдоним для удобства обращения к нему\n", "import numpy as np\n", "\n", "# импортируем этот модуль для генерации случайных данных\n", "import random" ] }, { "cell_type": "code", "execution_count": 2, "id": "4d629828", "metadata": {}, "outputs": [], "source": [ "# создадим список длиной 10_000 случайных целых чисел в диапазоне от -10_000 до 10_000\n", "arr = random.sample(range(-10_000, 10_000),k=10_000)" ] }, { "cell_type": "code", "execution_count": 3, "id": "0701ca1a", "metadata": {}, "outputs": [], "source": [ "# Подсчитаем время исполнения ячейки при помощи волшебного оператора %%time" ] }, { "cell_type": "code", "execution_count": 4, "id": "062a85f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "101 µs ± 556 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n" ] } ], "source": [ "%timeit sum(arr)" ] }, { "cell_type": "code", "execution_count": 5, "id": "86298baf", "metadata": {}, "outputs": [], "source": [ "# Подсчитаем теперь преобразованный список в NumPy-массив при помощи np.sum()" ] }, { "cell_type": "code", "execution_count": 6, "id": "ee277123", "metadata": {}, "outputs": [], "source": [ "arr_2 = np.array(arr)" ] }, { "cell_type": "code", "execution_count": 7, "id": "e58e9290", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.18 µs ± 17.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n" ] } ], "source": [ "%timeit np.sum(arr_2)" ] }, { "cell_type": "markdown", "id": "48501958", "metadata": {}, "source": [ "Как видно алгоритм подсчет суммы ускоряется почти в 20 раз" ] }, { "cell_type": "markdown", "id": "06dd75f1", "metadata": {}, "source": [ "NumPy позволяет создавать различного рода матрицы в одно действие: " ] }, { "cell_type": "code", "execution_count": 8, "id": "9930b6c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0., 0.],\n", " [0., 0.]])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#создать матрицу размерности 2х2 заполненную нулями\n", "np.zeros((2,2))" ] }, { "cell_type": "code", "execution_count": 9, "id": "55ed68ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 1.],\n", " [1., 1.],\n", " [1., 1.]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#создать матрицу размерности 3х2 заполненную единицами\n", "np.ones((3,2))" ] }, { "cell_type": "code", "execution_count": 10, "id": "5e86bd15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 4]\n", " [5 6]]\n", "(3, 2)\n" ] } ], "source": [ "# размерность массива можно посмотреть вызвав поле shape у np.array\n", "\n", "a = np.array([[1, 2], [3, 4], [5, 6]])\n", "\n", "print(a)\n", "print(a.shape)" ] }, { "cell_type": "code", "execution_count": 11, "id": "166f7114", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n" ] } ], "source": [ "# len вернет нам вернет размер по первому измерению\n", "\n", "print(len(a))" ] }, { "cell_type": "markdown", "id": "885f11a7", "metadata": {}, "source": [ "### Задание\n", "\n", "Найдите в документации numpy функции для создания диагональной матрицы и заполнения матрицы пользовательским числом.\n", "\n", "1) Создайте диагональную единичную матрицу размерности 5х5\n", "\n", "2) Создайте матрицу размерности 4х4 заполненную тройками" ] }, { "cell_type": "code", "execution_count": null, "id": "6b85793e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d8cd415d", "metadata": {}, "source": [ "Массивы можно транспонировать и изменять размерности" ] }, { "cell_type": "code", "execution_count": 12, "id": "8c9ea473", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 4]\n", " [5 6]]\n" ] } ], "source": [ "a = np.array([[1,2],[3,4],[5,6]])\n", "print(a)" ] }, { "cell_type": "code", "execution_count": 13, "id": "058cd289", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2 3]\n", " [4 5 6]]\n" ] } ], "source": [ "print(a.reshape((2,3)))" ] }, { "cell_type": "code", "execution_count": 14, "id": "0c2bd57d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 3 5]\n", " [2 4 6]]\n" ] } ], "source": [ "print(a.T)" ] }, { "cell_type": "code", "execution_count": 15, "id": "8a51aa3b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 2 3 4 5 6]\n" ] } ], "source": [ "# можно так же расплющить массив в одномерный\n", "print(a.flatten())" ] }, { "cell_type": "markdown", "id": "5f356c97", "metadata": {}, "source": [ "### Задание\n", "Создайте матрицу (любым известным вам способом) размерности 2х3х4 и транспонируйте ее. Попробуйте поменять очередность осей (по сути если представить трехмерную матрицу как куб, то это будет поворотом в пространстве на какой-то из боков) при помощи transpose" ] }, { "cell_type": "code", "execution_count": null, "id": "66d95b4c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "3e43e5ea", "metadata": {}, "source": [ "Массивы можно объединять и добавлять новые оси" ] }, { "cell_type": "code", "execution_count": 16, "id": "fff1f7a1", "metadata": {}, "outputs": [], "source": [ "a = np.array([[1,2],[3,4]])\n", "b = np.array([[5,6]])" ] }, { "cell_type": "code", "execution_count": 17, "id": "7ae37c0a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 4]\n", " [5 6]]\n" ] } ], "source": [ "print(np.concatenate((a,b)))" ] }, { "cell_type": "code", "execution_count": 18, "id": "4aafd0ee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "old matrix\n", "[[1 2]\n", " [3 4]]\n", "(2, 2) \n", "\n", "new matrix\n", "[[[1]\n", " [2]]\n", "\n", " [[3]\n", " [4]]]\n", "(2, 2, 1)\n" ] } ], "source": [ "print('old matrix')\n", "print(a)\n", "print(a.shape, '\\n') # отступим строку \n", "\n", "print('new matrix')\n", "b = a[:,:,np.newaxis]\n", "print(b)\n", "print(b.shape)" ] }, { "cell_type": "markdown", "id": "70b9a5c9", "metadata": {}, "source": [ "### Задание\n", "Создайте матрицу размерности 3х4 и продублируйте ее так, чтобы ее размерность стала 2х3х4 (понадобится newaxis и concatenate или при помощи squeeze)" ] }, { "cell_type": "code", "execution_count": null, "id": "90c9b02e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "4a2fc50b", "metadata": {}, "source": [ "### Операции над матрицами" ] }, { "cell_type": "code", "execution_count": 19, "id": "b799f6fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1. 2.]\n", " [3. 4.]] \n", "\n", "[[1. 0.]\n", " [0. 1.]]\n" ] } ], "source": [ "# можно передавать тип данных, к которому требуется привести элементы матрицы, в данном случае float\n", "a = np.array([[1,2],[3,4]], float)\n", "# создадим единичную матрицу (на главной диагонали лежат единицы, все остальные элементы равны нулю)\n", "b = np.eye(2,2)\n", "\n", "print(a, '\\n')\n", "print(b)" ] }, { "cell_type": "code", "execution_count": 20, "id": "9b91dd3b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2., 2.],\n", " [3., 5.]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a + b" ] }, { "cell_type": "code", "execution_count": 21, "id": "c173c930", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0., 2.],\n", " [3., 3.]])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a - b" ] }, { "cell_type": "markdown", "id": "aab1e5d7", "metadata": {}, "source": [ "умножение матриц через операнд * работает как поэлементное умножение" ] }, { "cell_type": "code", "execution_count": 22, "id": "a4b2adeb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 0.],\n", " [0., 4.]])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a * b" ] }, { "cell_type": "markdown", "id": "9a1aaf78", "metadata": {}, "source": [ "матрицу можно домножать на скаляр" ] }, { "cell_type": "code", "execution_count": 23, "id": "d080e165", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10., 20.],\n", " [30., 40.]])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a * 10" ] }, { "cell_type": "markdown", "id": "642171cc", "metadata": {}, "source": [ "и проводить все базовые математические операции со скалярами поэлементно" ] }, { "cell_type": "code", "execution_count": 24, "id": "caf040de", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0., 0.],\n", " [1., 1.]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a // 3" ] }, { "cell_type": "markdown", "id": "7ca21353", "metadata": {}, "source": [ "Для матричного перемножения используется метод dot()" ] }, { "cell_type": "code", "execution_count": 25, "id": "97af84bd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 2.],\n", " [3., 4.]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# т.к. при умножение на единичную матрицу исходная матрица не меняется\n", "a.dot(b)" ] }, { "cell_type": "markdown", "id": "faf8a0f2", "metadata": {}, "source": [ "### Задание\n", "\n", "Создайте две матрицы размерности 2х3 и 3х2, перемножьте их" ] }, { "cell_type": "code", "execution_count": null, "id": "c2ad3bc9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "71bc90d2", "metadata": {}, "source": [ "К массивам применимы те же операции, что и для списков. Их можно вызывать либо у массива, как метод, либо как функцию из numpy" ] }, { "cell_type": "code", "execution_count": 26, "id": "ef0317fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n", "4\n" ] } ], "source": [ "a = np.array([[1,2],[3,4]])\n", "\n", "print(a.max())\n", "print(np.max(a))" ] }, { "cell_type": "markdown", "id": "448de690", "metadata": {}, "source": [ "### Задание\n", "\n", "Используя возможности numpy (БЕЗ SET) напишите функции, которые принимают заданный массив чисел и возвращают:\n", "\n", "1) список уникальных значений\n", "\n", "2) кортеж из среднего, максимального и минимального" ] }, { "cell_type": "code", "execution_count": 27, "id": "dff1fd72", "metadata": {}, "outputs": [], "source": [ "arr = np.array([1,2,3,4,5,6,7,8,8,8,9,2,3,4,17])\n", "\n", "def unique_values(arr):\n", " \"\"\"\n", " напишите здесь свое решение\n", " \"\"\"\n", " pass\n", "\n", "def mean_max_min(arr):\n", " \"\"\"\n", " напишите здесь свое решение\n", " \"\"\"\n", " pass" ] }, { "cell_type": "code", "execution_count": 28, "id": "01a9aee8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n", "None\n" ] } ], "source": [ "# тут менять ничего не нужно, просто исполнить ячейку\n", "print(unique_values(arr))\n", "print(mean_max_min(arr))" ] }, { "cell_type": "markdown", "id": "faf2eea4", "metadata": {}, "source": [ "## Matplotlib" ] }, { "cell_type": "markdown", "id": "bc5e0963", "metadata": {}, "source": [ "Данная библиотека используется для визуального представления данных (графики, гистограммы, изображения и т.д.)" ] }, { "cell_type": "code", "execution_count": 29, "id": "2bd5b586", "metadata": {}, "outputs": [], "source": [ "# импортируем модуль pyplot из пакета matplotlib и дадим общепринятое сокращенное имя plt\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "id": "225c8dee", "metadata": {}, "source": [ "Рассмотрим для примера отрисовку графика синусоиды" ] }, { "cell_type": "code", "execution_count": 30, "id": "1bf1604a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# зададим функцию для подсчета значения синуса в точке\n", "def func(x):\n", " return np.sin(x)\n", "\n", "# при помощи linspace создадим массив значений в 1000 шагов от минус 5Пи до плюс 5пи \n", "x = np.linspace(-np.pi * 5, np.pi * 5, 1000)\n", "\n", "# зададим параметр пропорций и размеров нашего графика (можете поменять эти значения или вообще удалить эту строчку для интереса)\n", "plt.figure(figsize=(10,3))\n", "# выведем график при помощи функции plot\n", "plt.plot(x, func(x))" ] }, { "cell_type": "code", "execution_count": 31, "id": "4ab380ee", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# в аргументы передается сначала значения оси Х (можно не задавать), а потом значения по оси Y\n", "\n", "# обратите внимание на значения оси Х, которые мы сами не задаем\n", "plt.figure(figsize=(10,3))\n", "plt.plot(func(x))" ] }, { "cell_type": "markdown", "id": "4e3a173a", "metadata": {}, "source": [ "графики можно накладывать друг на друга, менять цвета и тип линии" ] }, { "cell_type": "code", "execution_count": 32, "id": "dd0fa23a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,3))\n", "\n", "plt.plot(func(x), color='red', linestyle=':')\n", "plt.plot(func(x)*5, color='green', linestyle='--')" ] }, { "cell_type": "markdown", "id": "2e7a25d0", "metadata": {}, "source": [ "### Задание\n", "Постройте графики функции x^2+2x-1 и ее производной синего и оранжевого цвета соответственно" ] }, { "cell_type": "code", "execution_count": null, "id": "edf87e95", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "6183ff76", "metadata": {}, "source": [ "При помощи imshow можно смотреть на тепловые (высотные) карты двумерных данных. Например значения функций двух переменных или изображения." ] }, { "cell_type": "code", "execution_count": 33, "id": "fd9bad72", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "arr = np.array([[0,1,0],[1,2,1],[0,1,0]])\n", "plt.imshow(arr)" ] }, { "cell_type": "markdown", "id": "420a9abe", "metadata": {}, "source": [ "При помощи hist можно отобразить сравнительное графическое представление данных в виде гистограммы.\n", "\n", "Указывая количество бинов, мы можем регулировать промежутки на которых будут формироваться столбцы" ] }, { "cell_type": "code", "execution_count": 34, "id": "f2c4d922", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data = np.array([10,4,26,17,8,45])\n", "\n", "plt.hist(data, bins=10)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "913b220c", "metadata": {}, "source": [ "## Pandas" ] }, { "cell_type": "markdown", "id": "af08b78f", "metadata": {}, "source": [ "Pandas позволяет обрабатывать и анализировать данные. Можно провести аналогию с Excel.\n", "В данном разделе рассмотрим основные возможности (т.к. библиотека крайне объемная и всю документацию будет физически невозможно сюда уместить)" ] }, { "cell_type": "code", "execution_count": 35, "id": "7ebddb89", "metadata": {}, "outputs": [], "source": [ "# Импортируем библотеку pandas и дадим ей сокращенное общепринятое имя pd \n", "import pandas as pd" ] }, { "cell_type": "markdown", "id": "e4199517", "metadata": {}, "source": [ "Pandas позволяет считывать табличные данные из файлов в форматах .csv, .xml, .xlsx, .json и т.д.\n", "\n", "Скачаем для примера классический датасет с информацией о пассажирах титаника.\n", "\n", "Линк на датасет: https://github.com/datasciencedojo/datasets/blob/master/titanic.csv" ] }, { "cell_type": "code", "execution_count": 36, "id": "bbf38d57", "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "Загрузим данный датасет. \n", "т.к. он в формате .csv то воспользуемся функцией read_csv() \n", "в которой укажем относительный путь к этому файлу \n", "\"\"\"\n", "df = pd.read_csv('lab_3_titanic.csv')" ] }, { "cell_type": "code", "execution_count": 37, "id": "268d6ec7", "metadata": {}, "outputs": [ { "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", " \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", " \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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "5 6 0 3 \n", "6 7 0 1 \n", "7 8 0 3 \n", "8 9 1 3 \n", "9 10 1 2 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "4 Allen, Mr. William Henry male 35.0 0 \n", "5 Moran, Mr. James male NaN 0 \n", "6 McCarthy, Mr. Timothy J male 54.0 0 \n", "7 Palsson, Master. Gosta Leonard male 2.0 3 \n", "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "0 0 A/5 21171 7.2500 NaN S \n", "1 0 PC 17599 71.2833 C85 C \n", "2 0 STON/O2. 3101282 7.9250 NaN S \n", "3 0 113803 53.1000 C123 S \n", "4 0 373450 8.0500 NaN S \n", "5 0 330877 8.4583 NaN Q \n", "6 0 17463 51.8625 E46 S \n", "7 1 349909 21.0750 NaN S \n", "8 2 347742 11.1333 NaN S \n", "9 0 237736 30.0708 NaN C " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# посмотрим первые 10 записей\n", "df[:10]" ] }, { "cell_type": "code", "execution_count": 38, "id": "044a069c", "metadata": {}, "outputs": [ { "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", " \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", " \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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", "5 6 0 3 \n", "6 7 0 1 \n", "7 8 0 3 \n", "8 9 1 3 \n", "9 10 1 2 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "4 Allen, Mr. William Henry male 35.0 0 \n", "5 Moran, Mr. James male NaN 0 \n", "6 McCarthy, Mr. Timothy J male 54.0 0 \n", "7 Palsson, Master. Gosta Leonard male 2.0 3 \n", "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "0 0 A/5 21171 7.2500 NaN S \n", "1 0 PC 17599 71.2833 C85 C \n", "2 0 STON/O2. 3101282 7.9250 NaN S \n", "3 0 113803 53.1000 C123 S \n", "4 0 373450 8.0500 NaN S \n", "5 0 330877 8.4583 NaN Q \n", "6 0 17463 51.8625 E46 S \n", "7 1 349909 21.0750 NaN S \n", "8 2 347742 11.1333 NaN S \n", "9 0 237736 30.0708 NaN C " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# то же самое можно сделать и так\n", "df.head(10)" ] }, { "cell_type": "markdown", "id": "09d489ac", "metadata": {}, "source": [ "### Задание\n", "Выведите последние 10 строк таблицы" ] }, { "cell_type": "code", "execution_count": null, "id": "beb0df55", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ca5614f8", "metadata": {}, "source": [ "Как видим, в таблице имеются столбцы, означающие некоторые признаки:\n", "- PassengerId: уникальный идентификатор пассажира в данном наборе данных\n", "- Survived: 0 - погиб, 1 - выжил\n", "- Pclass: класс обслуживания пассажира\n", "- Name: ФИО пассажира (как был записан в документах)\n", "- Sex: пол пассажира\n", "- Age: возраст пассажира\n", "- SibSp: сколько братьев/сестер или супругов на борту\n", "- Parch: сколько детей/родителей на борту\n", "- Ticket: номер билета\n", "- Fare: пассажирский тариф\n", "- Cabin: номер каюты\n", "- Embarked: порт погрузки. C - Cherbourg, Q - Queenstown, S - Southampton" ] }, { "cell_type": "code", "execution_count": 39, "id": "14180f18", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['PassengerId',\n", " 'Survived',\n", " 'Pclass',\n", " 'Name',\n", " 'Sex',\n", " 'Age',\n", " 'SibSp',\n", " 'Parch',\n", " 'Ticket',\n", " 'Fare',\n", " 'Cabin',\n", " 'Embarked']" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Получить список столбцов можно при помощи следующей функции\n", "df.columns.to_list()" ] }, { "cell_type": "markdown", "id": "0701d6db", "metadata": {}, "source": [ "Краткую статистику по всем данным можно получить при помощи метода describe().\n", "\n", "Она будет посчитана только для тех признаков, которые представлены численно." ] }, { "cell_type": "code", "execution_count": 40, "id": "d0cde577", "metadata": {}, "outputs": [ { "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", " \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", "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass Age SibSp \\\n", "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", "\n", " Parch Fare \n", "count 891.000000 891.000000 \n", "mean 0.381594 32.204208 \n", "std 0.806057 49.693429 \n", "min 0.000000 0.000000 \n", "25% 0.000000 7.910400 \n", "50% 0.000000 14.454200 \n", "75% 0.000000 31.000000 \n", "max 6.000000 512.329200 " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "id": "e9c1c6b5", "metadata": {}, "source": [ "Информацию по типам данных и количеству пропусков можно посмотреть при помощи info" ] }, { "cell_type": "code", "execution_count": 41, "id": "964c9588", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 891 entries, 0 to 890\n", "Data columns (total 12 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 PassengerId 891 non-null int64 \n", " 1 Survived 891 non-null int64 \n", " 2 Pclass 891 non-null int64 \n", " 3 Name 891 non-null object \n", " 4 Sex 891 non-null object \n", " 5 Age 714 non-null float64\n", " 6 SibSp 891 non-null int64 \n", " 7 Parch 891 non-null int64 \n", " 8 Ticket 891 non-null object \n", " 9 Fare 891 non-null float64\n", " 10 Cabin 204 non-null object \n", " 11 Embarked 889 non-null object \n", "dtypes: float64(2), int64(5), object(5)\n", "memory usage: 83.7+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "markdown", "id": "13a039cc", "metadata": {}, "source": [ "Можно применять различные встроенные методы к определенным признакам, обращаясь двумя равнозначными способами:" ] }, { "cell_type": "code", "execution_count": 42, "id": "375462f9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3838383838383838" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.Survived.mean()" ] }, { "cell_type": "code", "execution_count": 43, "id": "a7fbc32b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3838383838383838" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Survived'].mean()" ] }, { "cell_type": "markdown", "id": "b33c70db", "metadata": {}, "source": [ "### Задание\n", "Выведите максимальный и минимальный возраст пассажиров" ] }, { "cell_type": "code", "execution_count": null, "id": "5ef929a7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "bd46e44e", "metadata": {}, "source": [ "### Задание\n", "Воспользуйтесь встроенным методом value_counts для признака Pclass." ] }, { "cell_type": "code", "execution_count": null, "id": "b38010e0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "858da916", "metadata": {}, "source": [ "Для получения конкретной строки можно использовать индексацию:" ] }, { "cell_type": "code", "execution_count": 44, "id": "890e3a69", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PassengerId 6\n", "Survived 0\n", "Pclass 3\n", "Name Moran, Mr. James\n", "Sex male\n", "Age NaN\n", "SibSp 0\n", "Parch 0\n", "Ticket 330877\n", "Fare 8.4583\n", "Cabin NaN\n", "Embarked Q\n", "Name: 5, dtype: object" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.iloc[5]" ] }, { "cell_type": "markdown", "id": "6d365deb", "metadata": {}, "source": [ "### Задание\n", "Выведите номер билета у 120-го пассажира " ] }, { "cell_type": "code", "execution_count": null, "id": "5c8bea19", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d024a508", "metadata": {}, "source": [ "Возможно применение фильтрации для данных по какому-либо условию:" ] }, { "cell_type": "code", "execution_count": 45, "id": "a9f9500d", "metadata": {}, "outputs": [ { "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", " \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", " \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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
333402Wheadon, Mr. Edward Hmale66.000C.A. 2457910.5000NaNS
545501Ostby, Mr. Engelhart Corneliusmale65.00111350961.9792B30C
.......................................
82082111Hays, Mrs. Charles Melville (Clara Jennings Gr...female52.0111274993.5000B69S
82983011Stone, Mrs. George Nelson (Martha Evelyn)female62.00011357280.0000B28NaN
85185203Svensson, Mr. Johanmale74.0003470607.7750NaNS
85785811Daly, Mr. Peter Denismale51.00011305526.5500E17S
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
\n", "

64 rows × 12 columns

\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "6 7 0 1 \n", "11 12 1 1 \n", "15 16 1 2 \n", "33 34 0 2 \n", "54 55 0 1 \n", ".. ... ... ... \n", "820 821 1 1 \n", "829 830 1 1 \n", "851 852 0 3 \n", "857 858 1 1 \n", "879 880 1 1 \n", "\n", " Name Sex Age SibSp \\\n", "6 McCarthy, Mr. Timothy J male 54.0 0 \n", "11 Bonnell, Miss. Elizabeth female 58.0 0 \n", "15 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 \n", "33 Wheadon, Mr. Edward H male 66.0 0 \n", "54 Ostby, Mr. Engelhart Cornelius male 65.0 0 \n", ".. ... ... ... ... \n", "820 Hays, Mrs. Charles Melville (Clara Jennings Gr... female 52.0 1 \n", "829 Stone, Mrs. George Nelson (Martha Evelyn) female 62.0 0 \n", "851 Svensson, Mr. Johan male 74.0 0 \n", "857 Daly, Mr. Peter Denis male 51.0 0 \n", "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "6 0 17463 51.8625 E46 S \n", "11 0 113783 26.5500 C103 S \n", "15 0 248706 16.0000 NaN S \n", "33 0 C.A. 24579 10.5000 NaN S \n", "54 1 113509 61.9792 B30 C \n", ".. ... ... ... ... ... \n", "820 1 12749 93.5000 B69 S \n", "829 0 113572 80.0000 B28 NaN \n", "851 0 347060 7.7750 NaN S \n", "857 0 113055 26.5500 E17 S \n", "879 1 11767 83.1583 C50 C \n", "\n", "[64 rows x 12 columns]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# посмотрим все данные пассажиров, которые старше 50\n", "df[df.Age > 50]" ] }, { "cell_type": "markdown", "id": "fd091601", "metadata": {}, "source": [ "### Задание\n", "Выведите имена всех мужчин в виде списка" ] }, { "cell_type": "code", "execution_count": null, "id": "b52fd60b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c2a8a119", "metadata": {}, "source": [ "Можно использовать встроенные графики для отображения данных" ] }, { "cell_type": "code", "execution_count": 46, "id": "d1066e4c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df.Parch.hist()" ] }, { "cell_type": "markdown", "id": "92e95229", "metadata": {}, "source": [ "### Задание\n", "Постройте гистограмму на которой будет отображено количество людей в каждом из классов обслуживания" ] }, { "cell_type": "code", "execution_count": null, "id": "f3b54a84", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1ed5afe4", "metadata": {}, "source": [ "Из датафрейма можно выделять подвыборки и делать их самостоятельными датафреймами:" ] }, { "cell_type": "code", "execution_count": 47, "id": "b7c07681", "metadata": {}, "outputs": [ { "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", " \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", " \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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
.......................................
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88288303Dahlberg, Miss. Gerda Ulrikafemale22.000755210.5167NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
\n", "

314 rows × 12 columns

\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "8 9 1 3 \n", "9 10 1 2 \n", ".. ... ... ... \n", "880 881 1 2 \n", "882 883 0 3 \n", "885 886 0 3 \n", "887 888 1 1 \n", "888 889 0 3 \n", "\n", " Name Sex Age SibSp \\\n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", ".. ... ... ... ... \n", "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", "882 Dahlberg, Miss. Gerda Ulrika female 22.0 0 \n", "885 Rice, Mrs. William (Margaret Norton) female 39.0 0 \n", "887 Graham, Miss. Margaret Edith female 19.0 0 \n", "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "1 0 PC 17599 71.2833 C85 C \n", "2 0 STON/O2. 3101282 7.9250 NaN S \n", "3 0 113803 53.1000 C123 S \n", "8 2 347742 11.1333 NaN S \n", "9 0 237736 30.0708 NaN C \n", ".. ... ... ... ... ... \n", "880 1 230433 26.0000 NaN S \n", "882 0 7552 10.5167 NaN S \n", "885 5 382652 29.1250 NaN Q \n", "887 0 112053 30.0000 B42 S \n", "888 2 W./C. 6607 23.4500 NaN S \n", "\n", "[314 rows x 12 columns]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Выделим в отдельную таблицу всех женщин\n", "df_2 = df[df.Sex == 'female']\n", "df_2" ] }, { "cell_type": "code", "execution_count": 48, "id": "15eef0ed", "metadata": {}, "outputs": [ { "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", "
NameAge
0Braund, Mr. Owen Harris22.0
1Cumings, Mrs. John Bradley (Florence Briggs Th...38.0
2Heikkinen, Miss. Laina26.0
3Futrelle, Mrs. Jacques Heath (Lily May Peel)35.0
4Allen, Mr. William Henry35.0
.........
886Montvila, Rev. Juozas27.0
887Graham, Miss. Margaret Edith19.0
888Johnston, Miss. Catherine Helen \"Carrie\"NaN
889Behr, Mr. Karl Howell26.0
890Dooley, Mr. Patrick32.0
\n", "

891 rows × 2 columns

\n", "
" ], "text/plain": [ " Name Age\n", "0 Braund, Mr. Owen Harris 22.0\n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 38.0\n", "2 Heikkinen, Miss. Laina 26.0\n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 35.0\n", "4 Allen, Mr. William Henry 35.0\n", ".. ... ...\n", "886 Montvila, Rev. Juozas 27.0\n", "887 Graham, Miss. Margaret Edith 19.0\n", "888 Johnston, Miss. Catherine Helen \"Carrie\" NaN\n", "889 Behr, Mr. Karl Howell 26.0\n", "890 Dooley, Mr. Patrick 32.0\n", "\n", "[891 rows x 2 columns]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Выделим датафрейм хранящий только имена и возраст\n", "df_3 = df[['Name', 'Age']]\n", "df_3" ] }, { "cell_type": "markdown", "id": "985f01cf", "metadata": {}, "source": [ "### Задание\n", "Создайте датафрейм где будут поля Name и Survived для пассажиров без детей" ] }, { "cell_type": "code", "execution_count": null, "id": "6b462754", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c73eba53", "metadata": {}, "source": [ "Для преобразования значений столбца можно применять метод .apply с указанием в нем функции, применяемой к значению каждой строки. В данном примере применяется анонимная функция (лямбда-функция)." ] }, { "cell_type": "code", "execution_count": 49, "id": "4d58666a", "metadata": {}, "outputs": [ { "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", " \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", " \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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedisAdult
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNSTrue
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85CTrue
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNSTrue
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123STrue
4503Allen, Mr. William Henrymale35.0003734508.0500NaNSTrue
..........................................
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNSTrue
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42STrue
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNSFalse
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148CTrue
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQTrue
\n", "

891 rows × 13 columns

\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "3 4 1 1 \n", "4 5 0 3 \n", ".. ... ... ... \n", "886 887 0 2 \n", "887 888 1 1 \n", "888 889 0 3 \n", "889 890 1 1 \n", "890 891 0 3 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", "4 Allen, Mr. William Henry male 35.0 0 \n", ".. ... ... ... ... \n", "886 Montvila, Rev. Juozas male 27.0 0 \n", "887 Graham, Miss. Margaret Edith female 19.0 0 \n", "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", "889 Behr, Mr. Karl Howell male 26.0 0 \n", "890 Dooley, Mr. Patrick male 32.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked isAdult \n", "0 0 A/5 21171 7.2500 NaN S True \n", "1 0 PC 17599 71.2833 C85 C True \n", "2 0 STON/O2. 3101282 7.9250 NaN S True \n", "3 0 113803 53.1000 C123 S True \n", "4 0 373450 8.0500 NaN S True \n", ".. ... ... ... ... ... ... \n", "886 0 211536 13.0000 NaN S True \n", "887 0 112053 30.0000 B42 S True \n", "888 2 W./C. 6607 23.4500 NaN S False \n", "889 0 111369 30.0000 C148 C True \n", "890 0 370376 7.7500 NaN Q True \n", "\n", "[891 rows x 13 columns]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['isAdult'] = df['Age'].apply(lambda x: x > 18)\n", "df" ] }, { "cell_type": "markdown", "id": "51e5b6be", "metadata": {}, "source": [ "### Задание\n", "Посчитайте среднее значение цены билета на корабле. Введите новый столбец, который будет показывать дешевле или дороже средней цены был купленный билет у каждого человека. Можете заполнить поля значениями True/False или строчными представлениями \"дешевле\"/\"дороже\"" ] }, { "cell_type": "code", "execution_count": null, "id": "167386f6", "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }