{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Основы программирования в Python\n", "*Алла Тамбовцева, НИУ ВШЭ*\n", "\n", "## Семинар 7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "На этом семинаре мы будем работать с известной [базой данных](http://campus.lakeforest.edu/frank/FILES/MLFfiles/Bio150/Titanic/TitanicMETA.pdf) по пассажирам \"Титаника\" (она часто используется в курсах по эконометрике и машинному обучению, но представляет не только статистической, но и содержательный интерес).\n", "\n", "*Переменные:*\n", "\n", "**PassengerId** - id пассажира\n", "\n", "**Survived** - бинарный показатель, выжил пассажир или нет (1 - выжил, 0 - не выжил)\n", "\n", "**Pclass** - класс пассажира\n", "\n", "**Name** - имя пассажира \n", "\n", "**Sex**\t- пол пассажира\n", "\n", "**Age**\t- возраст пассажира\n", "\n", "**SibSp** - число родных братьев/сестер пассажира на борту корабля (или супругов) \n", "\n", "**Parch** - число родителей пассажира на борту корабля\t\n", "\n", "**Ticket**\t- номер билета\n", "\n", "**Fare** - стоимость билета\n", "\n", "**Cabin** - каюта\n", "\n", "**Embarked** - порт, в котором пассажир взошел на палубу корабля" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Загрузка и предварительная обработка" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Загрузите базу данных из файла `Titanic.csv`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('https://raw.githubusercontent.com/allatambov/Py-programming-3/master/28-05/Titanic.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Загрузите базу данных так из файла еще раз, но так, чтобы столбец PassengerId был идентификатором, то есть номером строки (*index)*." ] }, { "cell_type": "code", "execution_count": 4, "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", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
\n", "
" ], "text/plain": [ " Survived Pclass \\\n", "PassengerId \n", "1 0 3 \n", "2 1 1 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "1 Braund, Mr. Owen Harris male 22.0 \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "1 1 0 A/5 21171 7.2500 NaN S \n", "2 1 0 PC 17599 71.2833 C85 C " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('https://raw.githubusercontent.com/allatambov/Py-programming-3/master/28-05/Titanic.csv',\n", " index_col = 0)\n", "df.head(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Удалите из базы строки с пропущенными значениями и сохраните изменения в самой базе." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "df = df.dropna()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Описание базы данных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выведите сводную информацию по базе данных: какие переменные в ней есть, какого они типа + сколько заполненных наблюдений в каждой столбце." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 183 entries, 2 to 890\n", "Data columns (total 11 columns):\n", "Survived 183 non-null int64\n", "Pclass 183 non-null int64\n", "Name 183 non-null object\n", "Sex 183 non-null object\n", "Age 183 non-null float64\n", "SibSp 183 non-null int64\n", "Parch 183 non-null int64\n", "Ticket 183 non-null object\n", "Fare 183 non-null float64\n", "Cabin 183 non-null object\n", "Embarked 183 non-null object\n", "dtypes: float64(2), int64(4), object(5)\n", "memory usage: 17.2+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выведите сводную статистическую информацию по каждому количественному показателю в базе (описательные статистике)." ] }, { "cell_type": "code", "execution_count": 7, "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", "
SurvivedPclassAgeSibSpParchFare
count183.000000183.000000183.000000183.000000183.000000183.000000
mean0.6721311.19125735.6744260.4644810.47541078.682469
std0.4707250.51518715.6438660.6441590.75461776.347843
min0.0000001.0000000.9200000.0000000.0000000.000000
25%0.0000001.00000024.0000000.0000000.00000029.700000
50%1.0000001.00000036.0000000.0000000.00000057.000000
75%1.0000001.00000047.5000001.0000001.00000090.000000
max1.0000003.00000080.0000003.0000004.000000512.329200
\n", "
" ], "text/plain": [ " Survived Pclass Age SibSp Parch Fare\n", "count 183.000000 183.000000 183.000000 183.000000 183.000000 183.000000\n", "mean 0.672131 1.191257 35.674426 0.464481 0.475410 78.682469\n", "std 0.470725 0.515187 15.643866 0.644159 0.754617 76.347843\n", "min 0.000000 1.000000 0.920000 0.000000 0.000000 0.000000\n", "25% 0.000000 1.000000 24.000000 0.000000 0.000000 29.700000\n", "50% 1.000000 1.000000 36.000000 0.000000 0.000000 57.000000\n", "75% 1.000000 1.000000 47.500000 1.000000 1.000000 90.000000\n", "max 1.000000 3.000000 80.000000 3.000000 4.000000 512.329200" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Постройте гистограмму для переменной *Возраст* (*Age*), сделайте ее красного цвета, подпишите оси и добавьте заголовок графика." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# импортируем библиотеку для графики\n", "import matplotlib" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "% matplotlib inline\n", "\n", "# magic для того, чтобы график отображался прямо в ноутбуке ipynb" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df.Age.plot.hist(color = \"red\") # цвет red\n", "ax.set_title('Histogram for Age') # заголовок для объекта ax\n", "ax.set_xlabel('Age (in years)') # подпись для оси x\n", "ax.set_ylabel('number of passengers') # подпись для оси y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выведите описательные статистики для столбца *Стоимость билета* (*Fare*)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 183.000000\n", "mean 78.682469\n", "std 76.347843\n", "min 0.000000\n", "25% 29.700000\n", "50% 57.000000\n", "75% 90.000000\n", "max 512.329200\n", "Name: Fare, dtype: float64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.Fare.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Работа со строками и столбцами базы" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выведите названия столбцов в базе данных в виде списка (объект типа *list*)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Survived',\n", " 'Pclass',\n", " 'Name',\n", " 'Sex',\n", " 'Age',\n", " 'SibSp',\n", " 'Parch',\n", " 'Ticket',\n", " 'Fare',\n", " 'Cabin',\n", " 'Embarked']" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(df.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Переименуйте столбец с классом пассажира из **Pclass** в **Class**." ] }, { "cell_type": "code", "execution_count": 14, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
\n", "
" ], "text/plain": [ " Survived Class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "7 0 1 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "7 McCarthy, Mr. Timothy J male 54.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C \n", "4 1 0 113803 53.1000 C123 S \n", "7 0 0 17463 51.8625 E46 S " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols = list(df.columns) # сохраним список\n", "cols[1] = 'Class' # изменим нужный элемент в списке\n", "df.columns = cols # поменяем столбцы в базе\n", "df.head(3) # первые 3 строки" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выберите из базы данных все строки, которые соответствуют пассажирам женского пола, и сохраните их в новую базу `female`." ] }, { "cell_type": "code", "execution_count": 17, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
1113Sandstrom, Miss. Marguerite Rutfemale4.011PP 954916.7000G6S
\n", "
" ], "text/plain": [ " Survived Class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "11 1 3 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "11 Sandstrom, Miss. Marguerite Rut female 4.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C \n", "4 1 0 113803 53.1000 C123 S \n", "11 1 1 PP 9549 16.7000 G6 S " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "female = df[df.Sex == 'female'] # двойное =\n", "female.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выберите из базы данных все строки, которые соответствуют выжившим пассажирам мужского пола младше 32 лет, и сохраните их в базу `Ymale`." ] }, { "cell_type": "code", "execution_count": 21, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
2411Sloper, Mr. William Thompsonmale28.000011378835.5000A6S
9811Greenfield, Mr. William Bertrammale23.0001PC 1775963.3583D10 D12C
18412Becker, Master. Richard Fmale1.002123013639.0000F4S
19412Navratil, Master. Michel Mmale3.001123008026.0000F2S
30611Allison, Master. Hudson Trevormale0.9212113781151.5500C22 C26S
\n", "
" ], "text/plain": [ " Survived Class Name Sex Age \\\n", "PassengerId \n", "24 1 1 Sloper, Mr. William Thompson male 28.00 \n", "98 1 1 Greenfield, Mr. William Bertram male 23.00 \n", "184 1 2 Becker, Master. Richard F male 1.00 \n", "194 1 2 Navratil, Master. Michel M male 3.00 \n", "306 1 1 Allison, Master. Hudson Trevor male 0.92 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "24 0 0 113788 35.5000 A6 S \n", "98 0 1 PC 17759 63.3583 D10 D12 C \n", "184 2 1 230136 39.0000 F4 S \n", "194 1 1 230080 26.0000 F2 S \n", "306 1 2 113781 151.5500 C22 C26 S " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# обратите внимание на круглые скобки вокруг каждого условия - они необходимы!\n", "# одновременное выполнение условий - поэтому &\n", "\n", "Ymale = df[(df.Survived == 1) & (df.Sex == 'male') & (df.Age < 32)]\n", "Ymale.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выберите из базы данных все строки, которые соответствуют пассажирам 1 или 2 класса." ] }, { "cell_type": "code", "execution_count": 24, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
1211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
2212Beesley, Mr. Lawrencemale34.00024869813.0000D56S
\n", "
" ], "text/plain": [ " Survived Class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "7 0 1 \n", "12 1 1 \n", "22 1 2 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "7 McCarthy, Mr. Timothy J male 54.0 \n", "12 Bonnell, Miss. Elizabeth female 58.0 \n", "22 Beesley, Mr. Lawrence male 34.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C \n", "4 1 0 113803 53.1000 C123 S \n", "7 0 0 17463 51.8625 E46 S \n", "12 0 0 113783 26.5500 C103 S \n", "22 0 0 248698 13.0000 D56 S " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# здесь одно из условий верно, или 1, или 2 класс, поэтому |\n", "# одновременно быть в 1 и 2 классе невозможно\n", "\n", "class1_2 = df[(df.Class == 1) | (df.Class == 2)]\n", "class1_2.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выберите из базы данных все строки, которые соответствуют выжившим пассажирам 1 или 2 класса." ] }, { "cell_type": "code", "execution_count": 26, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
1211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
2212Beesley, Mr. Lawrencemale34.00024869813.0000D56S
2411Sloper, Mr. William Thompsonmale28.00011378835.5000A6S
\n", "
" ], "text/plain": [ " Survived Class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "12 1 1 \n", "22 1 2 \n", "24 1 1 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "12 Bonnell, Miss. Elizabeth female 58.0 \n", "22 Beesley, Mr. Lawrence male 34.0 \n", "24 Sloper, Mr. William Thompson male 28.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C \n", "4 1 0 113803 53.1000 C123 S \n", "12 0 0 113783 26.5500 C103 S \n", "22 0 0 248698 13.0000 D56 S \n", "24 0 0 113788 35.5000 A6 S " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# обратите внимание на порядок круглых скобок: здесь как в арифметике - учитывается порядок действий\n", "\n", "surv1_2 = df[(df.Survived == 1) & ((df.Class == 1) | (df.Class == 2))]\n", "surv1_2.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Добавьте в датафрейм столбец *Female*, состоящий из значений 0 и 1, где 1 соответствует пассажирам женского пола." ] }, { "cell_type": "code", "execution_count": 27, "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", "
SurvivedClassNameSexAgeSibSpParchTicketFareCabinEmbarkedFemale
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C1
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S1
701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S0
\n", "
" ], "text/plain": [ " Survived Class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "7 0 1 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "7 McCarthy, Mr. Timothy J male 54.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked Female \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C 1 \n", "4 1 0 113803 53.1000 C123 S 1 \n", "7 0 0 17463 51.8625 E46 S 0 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# сначала проверяем условие через ==, получаем набор из True и False\n", "# потом в списковом включении преобразуем логический тип в целочисленный (int)\n", "\n", "df['Female'] = [int(s) for s in df.Sex == 'female']\n", "df.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Группировка \n", "Выведите на экран все уникальные значения в столбце *Embarked*." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['C', 'S', 'Q'], dtype=object)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.Embarked.unique() # array - массив, не список" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сгруппируйте строки в датафрейме в соответствии со значениями переменной *Survived* и выведите средние значения всех количественных переменных по группам." ] }, { "cell_type": "code", "execution_count": 29, "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", "
ClassAgeSibSpParchFareFemale
Survived
01.21666741.3500000.3666670.45000064.0482620.100000
11.17886232.9058540.5121950.48780585.8211070.666667
\n", "
" ], "text/plain": [ " Class Age SibSp Parch Fare Female\n", "Survived \n", "0 1.216667 41.350000 0.366667 0.450000 64.048262 0.100000\n", "1 1.178862 32.905854 0.512195 0.487805 85.821107 0.666667" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# сначала группируем\n", "# потом получаем сводную информацию по агрегированным данным - задаем функцию mean для среднего\n", "\n", "df.groupby('Survived').agg('mean')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сгруппируйте строки в датафрейме в соответствии со значениями переменной *Sex* и сохраните в отдельный датафрейм таблицу со средними и медианными значениями переменной *Age* по группам (мужчины и женщины)." ] }, { "cell_type": "code", "execution_count": 32, "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", "
meanmedian
Sex
female32.67613632.25
male38.45178937.00
\n", "
" ], "text/plain": [ " mean median\n", "Sex \n", "female 32.676136 32.25\n", "male 38.451789 37.00" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# сначала группируем по Sex\n", "# потом забираем столбец Age\n", "# применяем нужные функции в agg(их несколько - не забудьте оформить в виде списка)\n", "\n", "age_agg = df.groupby('Sex').Age.agg(['mean', 'median'])\n", "age_agg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Выгрузка базы в файл\n", "Приведите все названия столбцов в датафрейме к нижнему регистру и сохраните изменения." ] }, { "cell_type": "code", "execution_count": 34, "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", "
survivedclassnamesexagesibspparchticketfarecabinembarkedfemale
PassengerId
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C1
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S1
701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S0
1113Sandstrom, Miss. Marguerite Rutfemale4.011PP 954916.7000G6S1
1211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S1
\n", "
" ], "text/plain": [ " survived class \\\n", "PassengerId \n", "2 1 1 \n", "4 1 1 \n", "7 0 1 \n", "11 1 3 \n", "12 1 1 \n", "\n", " name sex age \\\n", "PassengerId \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "7 McCarthy, Mr. Timothy J male 54.0 \n", "11 Sandstrom, Miss. Marguerite Rut female 4.0 \n", "12 Bonnell, Miss. Elizabeth female 58.0 \n", "\n", " sibsp parch ticket fare cabin embarked female \n", "PassengerId \n", "2 1 0 PC 17599 71.2833 C85 C 1 \n", "4 1 0 113803 53.1000 C123 S 1 \n", "7 0 0 17463 51.8625 E46 S 0 \n", "11 1 1 PP 9549 16.7000 G6 S 1 \n", "12 0 0 113783 26.5500 C103 S 1 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns = [c.lower() for c in df.columns]\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выгрузите итоговый датафрейм в файл `Titanic-new.csv`." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "df.to_csv('Titanic-new.csv')" ] } ], "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }