{
"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",
" Survived \n",
" Pclass \n",
" Name \n",
" Sex \n",
" Age \n",
" SibSp \n",
" Parch \n",
" Ticket \n",
" Fare \n",
" Cabin \n",
" Embarked \n",
" \n",
" \n",
" PassengerId \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 1 \n",
" 0 \n",
" 3 \n",
" Braund, Mr. Owen Harris \n",
" male \n",
" 22.0 \n",
" 1 \n",
" 0 \n",
" A/5 21171 \n",
" 7.2500 \n",
" NaN \n",
" S \n",
" \n",
" \n",
" 2 \n",
" 1 \n",
" 1 \n",
" Cumings, Mrs. John Bradley (Florence Briggs Th... \n",
" female \n",
" 38.0 \n",
" 1 \n",
" 0 \n",
" PC 17599 \n",
" 71.2833 \n",
" C85 \n",
" C \n",
" \n",
" \n",
" 3 \n",
" 1 \n",
" 3 \n",
" Heikkinen, Miss. Laina \n",
" female \n",
" 26.0 \n",
" 0 \n",
" 0 \n",
" STON/O2. 3101282 \n",
" 7.9250 \n",
" NaN \n",
" S \n",
" \n",
" \n",
" 4 \n",
" 1 \n",
" 1 \n",
" Futrelle, Mrs. Jacques Heath (Lily May Peel) \n",
" female \n",
" 35.0 \n",
" 1 \n",
" 0 \n",
" 113803 \n",
" 53.1000 \n",
" C123 \n",
" S \n",
" \n",
" \n",
" 5 \n",
" 0 \n",
" 3 \n",
" Allen, Mr. William Henry \n",
" male \n",
" 35.0 \n",
" 0 \n",
" 0 \n",
" 373450 \n",
" 8.0500 \n",
" NaN \n",
" S \n",
" \n",
" \n",
"
\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",
" Survived \n",
" Pclass \n",
" Age \n",
" SibSp \n",
" Parch \n",
" Fare \n",
" \n",
" \n",
" \n",
" \n",
" count \n",
" 891.000000 \n",
" 891.000000 \n",
" 714.000000 \n",
" 891.000000 \n",
" 891.000000 \n",
" 891.000000 \n",
" \n",
" \n",
" mean \n",
" 0.383838 \n",
" 2.308642 \n",
" 29.699118 \n",
" 0.523008 \n",
" 0.381594 \n",
" 32.204208 \n",
" \n",
" \n",
" std \n",
" 0.486592 \n",
" 0.836071 \n",
" 14.526497 \n",
" 1.102743 \n",
" 0.806057 \n",
" 49.693429 \n",
" \n",
" \n",
" min \n",
" 0.000000 \n",
" 1.000000 \n",
" 0.420000 \n",
" 0.000000 \n",
" 0.000000 \n",
" 0.000000 \n",
" \n",
" \n",
" 25% \n",
" 0.000000 \n",
" 2.000000 \n",
" 20.125000 \n",
" 0.000000 \n",
" 0.000000 \n",
" 7.910400 \n",
" \n",
" \n",
" 50% \n",
" 0.000000 \n",
" 3.000000 \n",
" 28.000000 \n",
" 0.000000 \n",
" 0.000000 \n",
" 14.454200 \n",
" \n",
" \n",
" 75% \n",
" 1.000000 \n",
" 3.000000 \n",
" 38.000000 \n",
" 1.000000 \n",
" 0.000000 \n",
" 31.000000 \n",
" \n",
" \n",
" max \n",
" 1.000000 \n",
" 3.000000 \n",
" 80.000000 \n",
" 8.000000 \n",
" 6.000000 \n",
" 512.329200 \n",
" \n",
" \n",
"
\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",
" Survived \n",
" Pclass \n",
" Name \n",
" Sex \n",
" Age \n",
" SibSp \n",
" Parch \n",
" Ticket \n",
" Fare \n",
" Cabin \n",
" Embarked \n",
" \n",
" \n",
" PassengerId \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 119 \n",
" 0 \n",
" 1 \n",
" Baxter, Mr. Quigg Edmond \n",
" male \n",
" 24.0 \n",
" 0 \n",
" 1 \n",
" PC 17558 \n",
" 247.5208 \n",
" B58 B60 \n",
" C \n",
" \n",
" \n",
" 259 \n",
" 1 \n",
" 1 \n",
" Ward, Miss. Anna \n",
" female \n",
" 35.0 \n",
" 0 \n",
" 0 \n",
" PC 17755 \n",
" 512.3292 \n",
" NaN \n",
" C \n",
" \n",
" \n",
" 300 \n",
" 1 \n",
" 1 \n",
" Baxter, Mrs. James (Helene DeLaudeniere Chaput) \n",
" female \n",
" 50.0 \n",
" 0 \n",
" 1 \n",
" PC 17558 \n",
" 247.5208 \n",
" B58 B60 \n",
" C \n",
" \n",
" \n",
" 312 \n",
" 1 \n",
" 1 \n",
" Ryerson, Miss. Emily Borie \n",
" female \n",
" 18.0 \n",
" 2 \n",
" 2 \n",
" PC 17608 \n",
" 262.3750 \n",
" B57 B59 B63 B66 \n",
" C \n",
" \n",
" \n",
" 378 \n",
" 0 \n",
" 1 \n",
" Widener, Mr. Harry Elkins \n",
" male \n",
" 27.0 \n",
" 0 \n",
" 2 \n",
" 113503 \n",
" 211.5000 \n",
" C82 \n",
" C \n",
" \n",
" \n",
"
\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",
" Survived \n",
" Pclass \n",
" Name \n",
" Sex \n",
" Age \n",
" SibSp \n",
" Parch \n",
" Ticket \n",
" Fare \n",
" Cabin \n",
" Embarked \n",
" \n",
" \n",
" PassengerId \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 259 \n",
" 1 \n",
" 1 \n",
" Ward, Miss. Anna \n",
" female \n",
" 35.0 \n",
" 0 \n",
" 0 \n",
" PC 17755 \n",
" 512.3292 \n",
" NaN \n",
" C \n",
" \n",
" \n",
" 680 \n",
" 1 \n",
" 1 \n",
" Cardeza, Mr. Thomas Drake Martinez \n",
" male \n",
" 36.0 \n",
" 0 \n",
" 1 \n",
" PC 17755 \n",
" 512.3292 \n",
" B51 B53 B55 \n",
" C \n",
" \n",
" \n",
" 738 \n",
" 1 \n",
" 1 \n",
" Lesurer, Mr. Gustave J \n",
" male \n",
" 35.0 \n",
" 0 \n",
" 0 \n",
" PC 17755 \n",
" 512.3292 \n",
" B101 \n",
" C \n",
" \n",
" \n",
" 312 \n",
" 1 \n",
" 1 \n",
" Ryerson, Miss. Emily Borie \n",
" female \n",
" 18.0 \n",
" 2 \n",
" 2 \n",
" PC 17608 \n",
" 262.3750 \n",
" B57 B59 B63 B66 \n",
" C \n",
" \n",
" \n",
" 743 \n",
" 1 \n",
" 1 \n",
" Ryerson, Miss. Susan Parker \"Suzette\" \n",
" female \n",
" 21.0 \n",
" 2 \n",
" 2 \n",
" PC 17608 \n",
" 262.3750 \n",
" B57 B59 B63 B66 \n",
" C \n",
" \n",
" \n",
"
\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",
" Sex \n",
" female \n",
" male \n",
" sum \n",
" \n",
" \n",
" Pclass \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 1 \n",
" 94 \n",
" 122 \n",
" 216 \n",
" \n",
" \n",
" 2 \n",
" 76 \n",
" 108 \n",
" 184 \n",
" \n",
" \n",
" 3 \n",
" 144 \n",
" 347 \n",
" 491 \n",
" \n",
" \n",
" sum \n",
" 314 \n",
" 577 \n",
" 891 \n",
" \n",
" \n",
"
\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": "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9eGjHwHfAnLnfq2NiHUAEbFO0ofS9oOA3+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",
" Sex \n",
" female \n",
" male \n",
" All \n",
" \n",
" \n",
" Pclass \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 1 \n",
" 34.611765 \n",
" 41.281386 \n",
" 38.233441 \n",
" \n",
" \n",
" 2 \n",
" 28.722973 \n",
" 30.740707 \n",
" 29.877630 \n",
" \n",
" \n",
" 3 \n",
" 21.750000 \n",
" 26.507589 \n",
" 25.140620 \n",
" \n",
" \n",
" All \n",
" 27.915709 \n",
" 30.726645 \n",
" 29.699118 \n",
" \n",
" \n",
"
\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
}