{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#
Тема 1. Первичный анализ данных с Pandas
\n", "##
Практическое задание. Анализ данных пассажиров \"Титаника\"
\n", "\n", "**Заполните код в клетках (где написано \"Ваш код здесь\") **" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Считаем данные из файла в память в виде объекта Pandas.DataFrame**" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv('data/titanic_train.csv',\n", " index_col='PassengerId')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Данные представлены в виде таблицы. Посмотрим на первые 5 строк:**" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", "
" ], "text/plain": [ " Survived Pclass \\\n", "PassengerId \n", "1 0 3 \n", "2 1 1 \n", "3 1 3 \n", "4 1 1 \n", "5 0 3 \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", "3 Heikkinen, Miss. Laina female 26.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "5 Allen, Mr. William Henry male 35.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 \n", "3 0 0 STON/O2. 3101282 7.9250 NaN S \n", "4 1 0 113803 53.1000 C123 S \n", "5 0 0 373450 8.0500 NaN S " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head(5)" ] }, { "cell_type": "code", "execution_count": 5, "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
count891.000000891.000000714.000000891.000000891.000000891.000000
mean0.3838382.30864229.6991180.5230080.38159432.204208
std0.4865920.83607114.5264971.1027430.80605749.693429
min0.0000001.0000000.4200000.0000000.0000000.000000
25%0.0000002.00000020.1250000.0000000.0000007.910400
50%0.0000003.00000028.0000000.0000000.00000014.454200
75%1.0000003.00000038.0000001.0000000.00000031.000000
max1.0000003.00000080.0000008.0000006.000000512.329200
\n", "
" ], "text/plain": [ " Survived Pclass Age SibSp Parch Fare\n", "count 891.000000 891.000000 714.000000 891.000000 891.000000 891.000000\n", "mean 0.383838 2.308642 29.699118 0.523008 0.381594 32.204208\n", "std 0.486592 0.836071 14.526497 1.102743 0.806057 49.693429\n", "min 0.000000 1.000000 0.420000 0.000000 0.000000 0.000000\n", "25% 0.000000 2.000000 20.125000 0.000000 0.000000 7.910400\n", "50% 0.000000 3.000000 28.000000 0.000000 0.000000 14.454200\n", "75% 1.000000 3.000000 38.000000 1.000000 0.000000 31.000000\n", "max 1.000000 3.000000 80.000000 8.000000 6.000000 512.329200" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Для примера отберем пассажиров, которые сели в Cherbourg (Embarked=C) и заплатили более 200 у.е. за билет (fare > 200).**\n", "\n", "Убедитесь, что Вы понимаете, как эта конструкция работает.
\n", "Если нет – посмотрите, как вычисляется выражение в квадратных в скобках." ] }, { "cell_type": "code", "execution_count": 6, "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", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
11901Baxter, Mr. Quigg Edmondmale24.001PC 17558247.5208B58 B60C
25911Ward, Miss. Annafemale35.000PC 17755512.3292NaNC
30011Baxter, Mrs. James (Helene DeLaudeniere Chaput)female50.001PC 17558247.5208B58 B60C
31211Ryerson, Miss. Emily Boriefemale18.022PC 17608262.3750B57 B59 B63 B66C
37801Widener, Mr. Harry Elkinsmale27.002113503211.5000C82C
\n", "
" ], "text/plain": [ " Survived Pclass \\\n", "PassengerId \n", "119 0 1 \n", "259 1 1 \n", "300 1 1 \n", "312 1 1 \n", "378 0 1 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "119 Baxter, Mr. Quigg Edmond male 24.0 \n", "259 Ward, Miss. Anna female 35.0 \n", "300 Baxter, Mrs. James (Helene DeLaudeniere Chaput) female 50.0 \n", "312 Ryerson, Miss. Emily Borie female 18.0 \n", "378 Widener, Mr. Harry Elkins male 27.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "119 0 1 PC 17558 247.5208 B58 B60 C \n", "259 0 0 PC 17755 512.3292 NaN C \n", "300 0 1 PC 17558 247.5208 B58 B60 C \n", "312 2 2 PC 17608 262.3750 B57 B59 B63 B66 C \n", "378 0 2 113503 211.5000 C82 C " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[(data['Embarked'] == 'C') & (data.Fare > 200)].head()" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
25911Ward, Miss. Annafemale35.000PC 17755512.3292NaNC
68011Cardeza, Mr. Thomas Drake Martinezmale36.001PC 17755512.3292B51 B53 B55C
73811Lesurer, Mr. Gustave Jmale35.000PC 17755512.3292B101C
31211Ryerson, Miss. Emily Boriefemale18.022PC 17608262.3750B57 B59 B63 B66C
74311Ryerson, Miss. Susan Parker \"Suzette\"female21.022PC 17608262.3750B57 B59 B63 B66C
\n", "
" ], "text/plain": [ " Survived Pclass Name Sex \\\n", "PassengerId \n", "259 1 1 Ward, Miss. Anna female \n", "680 1 1 Cardeza, Mr. Thomas Drake Martinez male \n", "738 1 1 Lesurer, Mr. Gustave J male \n", "312 1 1 Ryerson, Miss. Emily Borie female \n", "743 1 1 Ryerson, Miss. Susan Parker \"Suzette\" female \n", "\n", " Age SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "259 35.0 0 0 PC 17755 512.3292 NaN C \n", "680 36.0 0 1 PC 17755 512.3292 B51 B53 B55 C \n", "738 35.0 0 0 PC 17755 512.3292 B101 C \n", "312 18.0 2 2 PC 17608 262.3750 B57 B59 B63 B66 C \n", "743 21.0 2 2 PC 17608 262.3750 B57 B59 B63 B66 C " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[(data['Embarked'] == 'C') & \n", " (data['Fare'] > 200)].sort_values(by='Fare',\n", " ascending=False).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Пример создания признака.**" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def age_category(age):\n", " '''\n", " < 30 -> 1\n", " >= 30, <55 -> 2\n", " >= 55 -> 3\n", " '''\n", " if age < 30:\n", " return 1\n", " elif age < 55:\n", " return 2\n", " else:\n", " return 3" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "age_categories = [age_category(age) for age in data.Age]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "data['Age_category'] = age_categories" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Другой способ – через `apply`.**" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "data['Age_category'] = data['Age'].apply(age_category)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**1. Сколько мужчин / женщин находилось на борту?**\n", "- 412 мужчин и 479 женщин\n", "- 314 мужчин и 577 женщин\n", "- 479 мужчин и 412 женщин\n", "- 577 мужчин и 314 женщин" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "male 577\n", "female 314\n", "Name: Sex, dtype: int64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['Sex'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**2. Выведите распределение переменной `Pclass` (социально-экономический статус) и это же распределение, только для мужчин / женщин по отдельности. Сколько было мужчин 2-го класса?**\n", "- 104\n", "- 108\n", "- 112\n", "- 125" ] }, { "cell_type": "code", "execution_count": 13, "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", "
Sexfemalemalesum
Pclass
194122216
276108184
3144347491
sum314577891
\n", "
" ], "text/plain": [ "Sex female male sum\n", "Pclass \n", "1 94 122 216\n", "2 76 108 184\n", "3 144 347 491\n", "sum 314 577 891" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(data['Pclass'], data['Sex'], margins=True, margins_name='sum')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**3. Каковы медиана и стандартное отклонение платежей (`Fare`)? Округлите до 2 десятичных знаков.**\n", "- Медиана – 14.45, стандартное отклонение – 49.69\n", "- Медиана – 15.1, стандартное отклонение – 12.15\n", "- Медиана – 13.15, стандартное отклонение – 35.3\n", "- Медиана – 17.43, стандартное отклонение – 39.1" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Медиана - 14.45 \n", "Стандартное отклонение - 49.69\n" ] } ], "source": [ "print(f\"Медиана - {round(data['Fare'].median(), 2)} \\nСтандартное отклонение - {round(data['Fare'].std(), 2)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**4. Правда ли, что люди моложе 30 лет выживали чаще, чем люди старше 60 лет? Каковы доли выживших в обеих группах?**\n", "- 22.7% среди молодых и 40.6% среди старых\n", "- 40.6% среди молодых и 22.7% среди старых\n", "- 35.3% среди молодых и 27.4% среди старых\n", "- 27.4% среди молодых и 35.3% среди старых" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Выжило молодых: 40.6%\n", "Выжило старых: 22.7%\n" ] } ], "source": [ "print(f\"Выжило молодых: {round(data[data['Age'] < 30]['Survived'].mean() * 100, 1)}%\")\n", "print(f\"Выжило старых: {round(data[data['Age'] > 60]['Survived'].mean() * 100, 1)}%\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**5. Правда ли, что женщины выживали чаще мужчин? Каковы доли выживших в обеих группах?**\n", "- 30.2% среди мужчин и 46.2% среди женщин\n", "- 35.7% среди мужчин и 74.2% среди женщин\n", "- 21.1% среди мужчин и 46.2% среди женщин\n", "- 18.9% среди мужчин и 74.2% среди женщин" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Выжило мужчин: 18.9%\n", "Выжило женщин: 74.2%\n" ] } ], "source": [ "print(f\"Выжило мужчин: {round(data[data['Sex'] == 'male']['Survived'].mean() * 100, 1)}%\")\n", "print(f\"Выжило женщин: {round(data[data['Sex'] == 'female']['Survived'].mean() * 100, 1)}%\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**6. Сравните графически распределение стоимости билетов и возраста у спасенных и у погибших. Средний возраст погибших выше, верно?**\n", "- Да \n", "- Нет" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjtUlEQVR4nO3dfZxU9Xn38c9XJKwKUUCzNwoKyY0mKgTixvqYLsFWk1jRu00C8QGNlaTFJBptKneTCFqM8SFJLZqWRALxAcLL+EBNjCXiqlSjkRRRRJQq4go3KGBwjYsK1/3HOXsclmF3mN2Z2d35vl+vee2c35zfOdc14lzzO+fM7ygiMDMzA9ij0gGYmVnX4aJgZmYZFwUzM8u4KJiZWcZFwczMMi4KZl2QpN6VjsGqk4uCWRcgaaCkmyS9IGkjcHelY7Lq5KJgZSPpS5KelNQkaZ2k+ySdUOm4Ki0dFTwINAOfjIiBEfG5CodlVcpFwcpC0jeBHwFXAbXAwcBNwLgKhtVVnAm8GhHfjIg3Kh2MVTcXBSs5SfsCVwCTI+LOiHgrIt6NiP+IiH+QdGw6emiS9K6kd3KWD5a0h6RvS3pZ0gZJP0+3iaShkkLSnuny0enyP6fL9enyv+TEc3jadmtO22mSlkt6Q1KDpI/lvDZE0p2SXpO0UdIMSQfmxPhOGnfL8onpfhsLfIuOBra1sf/Vkk5Kn/eVtF7S4lbv8WpJb+fEk5vbqZKWptt+VNLItH1GTswh6a30+X3p6wdKWiBpk6RVki7I2ebUnJzfkHSXpH4F5mtdmIuClcOxQA1wV74XI+KxiOgbEX2B24BrWpYjYg1wbvoYA3wY6AvM2MW+rgFebdX2GvAZSX3S5b8FVrS8KOlQYC5wEXAA8GvgPyR9QFIv4F7gZWAocBAwLyLW5sR8FfCLnJgfKextyewN/EW+/edZ9x+Ad/O07wGcmhNPS26fAGYBXwEGAv8OLJDUJyIuzMkB4OPp8mfS5blAI3Ag8DfAVZLG5uzzF2nfg4FhwMTdzNu6IBcFK4eBwOsR8V6R/c8EfhARL0ZEEzAFGN8yOmgh6VSSf9O/bdX/HZIP2v+TftB+hh1P5H4R+FVELIyId4HrgL2A40i+xR8I/EM6wmmOiB2+pXeSe3ax/4ykWuB84Ad5+n+AJM/WLgD+PSIej4htETEH2Aoc01YwkoYAJwD/mOa8FPgpcHae1XuRvO8b29qmdQ8uClYOG4H9W3+I74YDSb6pt3gZ2JPk3ESLPYDvAd/axTZ+SvKBejrwG3b8AN1h+xGxHXiFZFQwBHi5yIJ2YHpoZbOk/5Z08i7W29rG/nNNBf4V2JTbKEnAfsDmPNs+BLgkjeMNSW+Q5HRge7EDmyLizZy2l1vF9IV0e68BbwH/0c42rRtwUbByeIzkyprTi+y/luTDrcXBwHvA+py2c4GVEfG7fBuIiGdIDtN8m6RA7HL76YfsEJLDUK8ABxdZ0NZGxH7AAJIP8zm7WG9NG/tvcShwMnBDnv6HkBTJF/O89gowPSL2y3nsHRFz24sdGNDqPMHBrWKan+a3N/A0cH0727RuwEXBSi4i/gh8F7hR0umS9pbUW9JnJF1TwCbmAhdLGiYp9xh+7rf3fyI5rNSWq4DfRsTyVu3zgc9JGpteHnoJybf3R4EngHXA1ZL2kVQj6fgCYs5EMj/9G+z6/7e29t/i28AVEfF2bsf0Q/ty4D8j4k95tv0T4KuS/kyJfSR9rr2TwhHxSrr/76U5jyQZad2WZ/XtQJCcD7FurtjhvNluiYgfSFpP8uF2G/AmsASYXkD3WSSHMx4mOWF9P/C1VuvcGxEvtBPDvSQnjVu3r5R0Fsm3+YOApcBfRcQ7AJL+iuQb+hqSD7/bgf8qIO7/lXMF0haSD9V8cb0g6exd7T+1Efh5nu7/CvQnOXmeb9tPplcNzQCGA28Di0ney/ZMAP6NZNSwGbg8IhbmvP5FSacD24BlJOcvrJuTb7JjZmYtfPjIzMwyLgpmZpZxUTAzs4yLgpmZZbr11Uf7779/DB06tOj+b731Fvvss0/nBdSFOdeeq5ryraZcoXT5Llmy5PWIyHsJcbcuCkOHDuXJJ58sun9DQwP19fWdF1AX5lx7rmrKt5pyhdLlK+nlXb3mw0dmZpZxUTAzs4yLgpmZZbr1OQUz6/neffddGhsbaW5uZt9992XFihXtd+ohOppvTU0NgwcPpnfv3gX3cVEwsy6tsbGRfv36MXToUJqamujXr3pu8Pbmm28WnW9EsHHjRhobGxk2bFjB/Xz4yMy6tObmZgYOHEgyo7gVShIDBw6kubl5t/q5KJhZl+eCUJxi3jcXBTMzy/icgpl1K5rWuaOGuLz92wf06tWLESNGEBH06tWLGTNmcNxxx7Xbrzuq6qKwbt06pk6dWlTfYvuZWfez1157sXTpUgDuv/9+pkyZwkMPPVTZoErEh4/MzHbDli1b6N+/P5BMQ3Hqqafu8Prrr79Oy5xs999/P2PHjuWdd97ZYd358+dzxhlnsH37dmbPns2FF14IwMqVK9lzzz254447su0NHTqUESNGcPjhh3PkkUcCsGnTJk4//XRGjhzJMcccw7Jlyzotv6oeKZiZFeLtt99m1KhRNDc3s27dOhYtWlRQv5NPPpkXX3yRCy64gPPOOw+Axx9/nB/96EcsXLiQPfbY8Xv5d77zHT760Y/u0LZt2zYeeughtmzZkhWVyy+/nNGjR3P33XezaNEizjnnnGwk01EeKZiZtaPl8NFzzz3Hb37zG8455xxabmX8yCOPMGrUKEaPHs2sWbN26nvBBRewaNEirr76al599VXGjRvH5MmTd5r9dMmSJWzfvp26urod2t9++21qamp2aFu8eDFnn302AJ/+9KfZuHEjf/zjHzslVxcFM7PdcOyxx/L666/z2muvAXDiiSeydOlSFi5cyLe+9S3+9Kc/7bD+DTfcwFlnnUXv3r15/vnn+fGPf8w111yz0+8Hvv3tb3PllVfu0Nbc3Mz27dvZe++9d2hvKUi5OuuyXRcFM7Pd8Nxzz7Ft2zYGDhy4Q3u/fv3Yc8892bZtW9a2du1aZs+ezXe/+10uueQSxowZwxlnnMGZZ57J9773vWy9hx56iEGDBvGxj31sh23efffdHHvssTvF8KlPfYrbbrsNSM5r7L///nzwgx/slPx8TsHMupVCLiHtbC3nFCD5lj5nzhx69eoFwKOPPsoJJ5zAW2+9xcUXX7zDtBQXXXQR06dPZ6+99tphexdffDHHHHMMZ511FgAvvPACv/rVr3ZY56677uLmm2/mlltu2SmeqVOnct555zFy5Ej23ntv5syZ02m5lrwoSOoFPAm8GhGnShoA/AIYCqwGvhARm9N1pwDnA9uAr0fE/aWOz8ysPbnf/nPV19ezadOmndpXr14NJFcZ5a7bcsOc3r17s2TJEgCGDx/Oueeem603e/bs7PlJJ52UFZmhQ4fyzDPPADBgwADuueeeYtNpUzkOH30DyJ3m7zLggYgYDjyQLiPpcGA8cARwCnBTWlDMzKxMSloUJA0GPgf8NKd5HNAy1pkDnJ7TPi8itkbES8Aq4OhSxmdmZjsq9eGjHwHfAnLnfq2NiHUAEbFO0ofS9oOA3+Ws15i27UDSJGASQG1tLQ0NDUUH16dPHw477LCi+nZkv5XQ1NTU7WIuVjXlCj0/33333Zc333wTSA7jtDyvBp2Rb3Nz8279+yhZUZB0KrAhIpZIqi+kS562nc4oRcRMYCZAXV1ddOSm1nPnzmXlypVF9Z0wYULR+62EarrheTXlCj0/3xUrVmTH1Ttyf4HuqDPyrampYfTo0QWvX8qRwvHAaZI+C9QAH5R0K7Be0qB0lDAI2JCu3wgMyek/GFhbwvjMzKyVkp1TiIgpETE4IoaSnEBeFBFnAQuAielqE4GWU+gLgPGS+kgaBgwHnihVfGZmtrNK/E7hamC+pPOBNcDnASJiuaT5wLPAe8DkiMh/HZiZVa3OnqG4kO21TJ3dYtOmTZx22mnMmDGj0+Jobm7miiuuYNGiRTQ3N3PVVVdx4okndtr2C1WWohARDUBD+nwjMHYX600HppcjJjOzQuVOnQ3JbwmefPLJTt3HpEmTOOGEE3jkkUfo3bs3QEVOqnuaCzOzDnj55ZcZO3YsI0eOZOzYsaxZswaAc889l2HDhjFq1ChGjRrFo48+ustpsluuIJs1axaf+MQnOOOMM9i8eXO2j/r6eg477DBGjRpF3759gWRkcd555zFixAhGjx7Ngw8+2Cn5uCiYmXXAhRdeyDnnnMOyZcs488wz+frXv569du2117J06VKWLl26053acqfJ3rhxI6+88grf//73efrppxkxYgTTpk3L1t22bRtz587dYbRy4403AvD0008zd+5cJk6cuNMke8VwUTAz64DHHnuML33pSwCcffbZLF68uN0+rafJjgiGDBnCn//5nwMwceJEHn744Wz99qbP/uhHP8ohhxzC888/3+F8XBTMzDpRIVNYt54mu70ZTteuXcugQYN2aMs3fXZncFEwM+uA4447jnnz5gFw2223ccIJJ7S5fr5psgcMGEBNTQ2PPPIIALfccks2ali8eDH9+/fPbgHaInf67Oeff541a9YUPUNDLk+dbWbdSmdfktpRN9xwA1/+8pe59tprOeCAA/jZz37W5vr5pskG+PnPf87kyZN59913+chHPsKsWbNYsmQJ3/zmN/Pe0e3v//7v+epXv8qIESPYc889mT17Nn369OlwPirVEKQc6urqoiOXhXVkmouu9g+z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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as mpl\n", "data[data['Survived'] == 1]['Fare'].hist(color=\"green\", label='Выжило')\n", "data[data['Survived'] == 0]['Fare'].hist(color=\"black\", label='Погибло', alpha=.5)\n", "mpl.title('Стоимость билетов')\n", "mpl.xlabel('Цена')\n", "mpl.ylabel('Частота')\n", "mpl.legend();" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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fpWazbnap1JzRVRuts7kAp4MD3NhZmZtcVEwM7OMi4KZmWX26BPNZrb327ZtG42NjTQ1NeWy/wMPPJBly5blsu8PU0yuqqoqBg4cSK9evYrerouCmVW0xsZGampqGDx4MK2MBF52mzdvpqampsv325a2ckUEGzZsoLGxkSFDhhS9XXcfmVlFa2pq4uCDD86lIOzJJHHwwQe3u4XlomBmFc8FoWM6ctxcFMzMLONzCma2R9H00rYaYlrb47/16NGDYcOGERH06NGDm2++mZNOOqmkOSqFi4KVXH19fZftq66ursv2Zd1X7969Wbp0KQAPPvgg11xzDQsXLsw3VJm4+8jMrB3eeust+vbtC0BDQwPjxo3baf7rr79O85hsDz74IGPHjuW9997badm77rqL8ePHs2PHDmbNmsWll14KwPLly+nZsydz587Ntjd48GCGDRvGMcccw7HHJldi3bhxIxMmTGD48OGMGjWKp59+umSvzy0FM7M2bN26lREjRtDU1MTatWuZP39+Uet99rOf5aWXXuLiiy/mwgsvBGDx4sX88Ic/ZN68eeyzz86fy7/xjW9w9NFH7zRt+/btLFy4kLfeeisrKtOmTWP48OHcd999zJ8/n0mTJmUtmc5yS8HMrA3N3UcvvPACDzzwAJMmTSLSa9E88sgjjBgxguOOO46ZM2fusu7FF1/M/PnzueGGG1i9ejVnnXUWl1xyyS4jnC5ZsoQdO3ZQW1u70/StW7dSVVW107RHH32Uc889F4DTTz+dDRs28Oabb5bktboomJm1w4knnsjrr7/O+vXrATjllFNYunQp8+bN4+tf/zrvvPPOTsvfdNNNXHDBBfTq1YsXX3yRW265he9973u7/H7g2muv5Vvf+tZO05qamtixYwd9+vTZaXpzQSpUqq/tuvvIzKwdXnjhBbZv387BBx+80/Samhp69uzJ9u3bs2lr1qxh1qxZLF68mMWLFxMRjB8/nhUrVnD99dczffp0ABYuXMgJJ5zAJz/5yZ22OXfuXE488cRdMpx66qncddddDB8+nIaGBg455BAOOOCAkrw+FwUz26MU8xXSUms+pwDJp/TZs2fTo0cPAB577DFGjx7N22+/zZVXXrnT0BNXXHEF1113Hb17995pe1deeSWjRo3iggsuAGDFihXcf//9Oy1zzz33cMsttzBr1qxd8tTX1zNx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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data[data['Survived'] == 1]['Age'].hist(color=\"green\", label='Выжило')\n", "data[data['Survived'] == 0]['Age'].hist(color=\"black\", label='Погибло', alpha=.5)\n", "mpl.title('Возраст пассажиров')\n", "mpl.xlabel('Возраст')\n", "mpl.ylabel('Частота')\n", "mpl.legend();" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Возраст погибших: 30.62617924528302\n", "Возраст выживших: 28.343689655172415\n" ] } ], "source": [ "# data.groupby('Survived')['Age'].mean()\n", "print(f\"Возраст погибших: {data[data['Survived'] == 0]['Age'].mean()}\\nВозраст выживших: {data[data['Survived'] == 1]['Age'].mean()}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**7. Как отличается средний возраст мужчин / женщин в зависимости от класса обслуживания? Выберите верные утверждения:**\n", "- В среднем мужчины 1-го класса старше 40 лет\n", "- В среднем женщины 1-го класса старше 40 лет\n", "- Мужчины всех классов в среднем старше женщин того же класса\n", "- В среднем люди в 1 классе старше, чем во 2-ом, а те старше представителей 3-го класса" ] }, { "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", "
SexfemalemaleAll
Pclass
134.61176541.28138638.233441
228.72297330.74070729.877630
321.75000026.50758925.140620
All27.91570930.72664529.699118
\n", "
" ], "text/plain": [ "Sex female male All\n", "Pclass \n", "1 34.611765 41.281386 38.233441\n", "2 28.722973 30.740707 29.877630\n", "3 21.750000 26.507589 25.140620\n", "All 27.915709 30.726645 29.699118" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(data['Pclass'], data['Sex'], values=data['Age'], margins=True, aggfunc=np.mean)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "38.233440860215055" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[data['Pclass'] == 1]['Age'].mean()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.8.5" }, "name": "seminar02_practice_pandas_titanic.ipynb" }, "nbformat": 4, "nbformat_minor": 1 }