{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img align=\"center\" src=\"https://raw.githubusercontent.com/FUlyankin/Parsers/master/images%20/cats.jpg\" height=\"1200\" width=\"1200\"> \n",
    "\n",
    "# Домашка №3: основы статистики\n",
    "\n",
    "\n",
    "У всех нас есть датасет по контакту. В нём лежит информация про всех нас. Эту информацию надо как следует проанализировать. Именно этим мы и подолжаем заниматься.\n",
    "\n",
    "Грамотно расчитывайте свои силы и делайте тот объём заданий, который позволит вам получить желаемую оценку :) \n",
    "\n",
    "__Важно:__ за циклы в любом из пунктов вы получаете ноль баллов.\n",
    "\n",
    "----------------------\n",
    "\n",
    "Подгрузим данные и посмотрим на первые пять строчек из таблицы.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>city</th>\n",
       "      <th>country</th>\n",
       "      <th>first_name</th>\n",
       "      <th>home_town</th>\n",
       "      <th>in_hse_memes_group</th>\n",
       "      <th>is_bmm</th>\n",
       "      <th>is_closed</th>\n",
       "      <th>last_name</th>\n",
       "      <th>likes_memes</th>\n",
       "      <th>uid</th>\n",
       "      <th>...</th>\n",
       "      <th>photo_month_mean</th>\n",
       "      <th>photo_repost_cnt</th>\n",
       "      <th>photo_repost_max</th>\n",
       "      <th>photo_repost_mean</th>\n",
       "      <th>photo_repost_median</th>\n",
       "      <th>photo_text_len_cnt</th>\n",
       "      <th>photo_ava_change_cnt</th>\n",
       "      <th>photo_text_url_len_cnt</th>\n",
       "      <th>friends_from_course_cnt</th>\n",
       "      <th>friends_mail_from_course_pct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Москва</td>\n",
       "      <td>Россия</td>\n",
       "      <td>Александра</td>\n",
       "      <td>Москва</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>Абашкова</td>\n",
       "      <td>60.0</td>\n",
       "      <td>182152789</td>\n",
       "      <td>...</td>\n",
       "      <td>1.333333</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>0.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Рязань</td>\n",
       "      <td>Россия</td>\n",
       "      <td>Анастасия</td>\n",
       "      <td>Рязань</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>Чуфистова</td>\n",
       "      <td>0.0</td>\n",
       "      <td>148020433</td>\n",
       "      <td>...</td>\n",
       "      <td>2.375000</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.105263</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>0.281250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Москва</td>\n",
       "      <td>Россия</td>\n",
       "      <td>Александр</td>\n",
       "      <td>Омск</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>Головачев</td>\n",
       "      <td>0.0</td>\n",
       "      <td>138413935</td>\n",
       "      <td>...</td>\n",
       "      <td>1.400000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>0.406250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Анна</td>\n",
       "      <td>NaN</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>Лобанова</td>\n",
       "      <td>0.0</td>\n",
       "      <td>366261055</td>\n",
       "      <td>...</td>\n",
       "      <td>4.166667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>0.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>Россия</td>\n",
       "      <td>Алексей</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>Пузырный</td>\n",
       "      <td>21.0</td>\n",
       "      <td>111252392</td>\n",
       "      <td>...</td>\n",
       "      <td>3.181818</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>0.341463</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 98 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     city country  first_name home_town  in_hse_memes_group  is_bmm  \\\n",
       "0  Москва  Россия  Александра    Москва                True    True   \n",
       "1  Рязань  Россия   Анастасия    Рязань                True    True   \n",
       "2  Москва  Россия   Александр      Омск               False    True   \n",
       "3     NaN     NaN        Анна       NaN               False    True   \n",
       "4     NaN  Россия     Алексей       NaN                True    True   \n",
       "\n",
       "   is_closed  last_name  likes_memes        uid  ...  photo_month_mean  \\\n",
       "0      False   Абашкова         60.0  182152789  ...          1.333333   \n",
       "1      False  Чуфистова          0.0  148020433  ...          2.375000   \n",
       "2      False  Головачев          0.0  138413935  ...          1.400000   \n",
       "3      False   Лобанова          0.0  366261055  ...          4.166667   \n",
       "4      False   Пузырный         21.0  111252392  ...          3.181818   \n",
       "\n",
       "   photo_repost_cnt  photo_repost_max  photo_repost_mean  photo_repost_median  \\\n",
       "0               0.0               0.0           0.000000                  0.0   \n",
       "1               2.0               1.0           0.105263                  0.0   \n",
       "2               0.0               0.0           0.000000                  0.0   \n",
       "3               0.0               0.0           0.000000                  0.0   \n",
       "4               0.0               0.0           0.000000                  0.0   \n",
       "\n",
       "   photo_text_len_cnt  photo_ava_change_cnt  photo_text_url_len_cnt  \\\n",
       "0                 0.0                   0.0                     0.0   \n",
       "1                 0.0                   0.0                     0.0   \n",
       "2                 0.0                   0.0                     0.0   \n",
       "3                 0.0                   0.0                     0.0   \n",
       "4                 0.0                   0.0                     0.0   \n",
       "\n",
       "   friends_from_course_cnt  friends_mail_from_course_pct  \n",
       "0                     42.0                      0.428571  \n",
       "1                     32.0                      0.281250  \n",
       "2                     32.0                      0.406250  \n",
       "3                     45.0                      0.333333  \n",
       "4                     41.0                      0.341463  \n",
       "\n",
       "[5 rows x 98 columns]"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_csv('../data/vk_download/vk_main.csv', sep='\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[1] У скольких человек с маркетинга нет авы?__\n",
    "\n",
    "Используй переменные `is_bmm` и `has_ava_dummy` (значение `True` можно воспринимать как $1$, а `False` — как $0$). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "98"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df.is_bmm == 1) & (df.has_ava_dummy == 0)].shape[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[2] Сколько парней/девушек с инстой/без указали в профиле, что знают английский?__  \n",
    "\n",
    "Эта информация лежит в переменной `english_dummy`. Значение $1$ означает, что английский язык указан в профиле. По аналогии в `instagram_dummy` $1$ означают, что человек оставил ссылку на свою инсту. __Проинтерпретируйте получившиеся цифры.__ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "male_dummy  instagram_dummy\n",
       "0           0                  0.126437\n",
       "            1                  0.214286\n",
       "1           0                  0.142857\n",
       "            1                  0.185185\n",
       "Name: english_dummy, dtype: float64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_agg = df.groupby(['male_dummy', 'instagram_dummy'])['english_dummy']\n",
    "df_agg.sum()/df_agg.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Люди, которые указали инстаграмм, указывают и знание английского языка. Этот вовсе не означает, что люди с инстаграммом лучше знают язык. Скорее всего, они просто более открыты миру и более подробно заполняют свой профиль в социальной сетке. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[1] Вывести имена людей, у которых на стенках больше всего эмодзи (топ 5%)__\n",
    "\n",
    " Все эмодзи, которые были оставлены на стенке у студента, лежат в колонке `wall_emoji_trace`.  Отсортируйте всех людей из этого топа по числу эмодзи. При работе с табличкой не забудьте заполнить пропуски."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>first_name</th>\n",
       "      <th>wall_emoji_cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Анастасия</td>\n",
       "      <td>1975</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>231</th>\n",
       "      <td>Григорий</td>\n",
       "      <td>1914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>296</th>\n",
       "      <td>Юлия</td>\n",
       "      <td>1904</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>113</th>\n",
       "      <td>Elizabeth</td>\n",
       "      <td>1456</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>176</th>\n",
       "      <td>Анжелика</td>\n",
       "      <td>1076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Алик</td>\n",
       "      <td>1058</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>161</th>\n",
       "      <td>Оля</td>\n",
       "      <td>751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>Дуся</td>\n",
       "      <td>737</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>Аня</td>\n",
       "      <td>473</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>253</th>\n",
       "      <td>Стася</td>\n",
       "      <td>446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Иван</td>\n",
       "      <td>441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395</th>\n",
       "      <td>Тимур</td>\n",
       "      <td>402</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>414</th>\n",
       "      <td>Дима</td>\n",
       "      <td>357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>Ден</td>\n",
       "      <td>357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Дарья</td>\n",
       "      <td>309</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>209</th>\n",
       "      <td>Диана</td>\n",
       "      <td>306</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>369</th>\n",
       "      <td>Полина</td>\n",
       "      <td>293</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>261</th>\n",
       "      <td>Ксения</td>\n",
       "      <td>282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>154</th>\n",
       "      <td>Виктория</td>\n",
       "      <td>274</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>174</th>\n",
       "      <td>Андрей</td>\n",
       "      <td>239</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>375</th>\n",
       "      <td>Сандрик</td>\n",
       "      <td>223</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>Соня</td>\n",
       "      <td>213</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    first_name  wall_emoji_cnt\n",
       "1    Анастасия            1975\n",
       "231   Григорий            1914\n",
       "296       Юлия            1904\n",
       "113  Elizabeth            1456\n",
       "176   Анжелика            1076\n",
       "196       Алик            1058\n",
       "161        Оля             751\n",
       "214       Дуся             737\n",
       "180        Аня             473\n",
       "253      Стася             446\n",
       "198       Иван             441\n",
       "395      Тимур             402\n",
       "414       Дима             357\n",
       "208        Ден             357\n",
       "199      Дарья             309\n",
       "209      Диана             306\n",
       "369     Полина             293\n",
       "261     Ксения             282\n",
       "154   Виктория             274\n",
       "174     Андрей             239\n",
       "375    Сандрик             223\n",
       "387       Соня             213"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['wall_emoji_cnt'] = df['wall_emoji_trace'].fillna('').apply(len)\n",
    "\n",
    "q = df['wall_emoji_cnt'].quantile(0.95)\n",
    "\n",
    "df.loc[df['wall_emoji_cnt'] >= q,\n",
    "       ['first_name', 'wall_emoji_cnt']].sort_values('wall_emoji_cnt', ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[3] Давайте проанализируем колонку со средним кол-во фото в месяц (`photo_month_mean`)__\n",
    "\n",
    "* Постройте на одной картинке гистограмы для распределения этого показателя по разным полам. \n",
    "* Правда ли, что типичная девушка выкладывает значительно больше фотографий, чем типичный мужчина? (подумайте какой именно показатель типичности нужно выбрать для сравнения и обоснуйте почему)\n",
    "* Для какого пола показатель оказывается более непредсказуемым? (подумайте как именно корректно эту непредсказуемость оценить, обычное стандартное отклонение явно не подходит)\n",
    "\n",
    "Не забывайте подгрузить пакет `matplotlib`! __Все свои рассуждения пишите прямо по ходу кода! Нет рассуждений => нет баллов!__ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[df.male_dummy == 1].photo_month_mean.hist(figsize=(8,4), alpha=0.3, label=\"male\", bins=50)\n",
    "df[df.male_dummy == 0].photo_month_mean.hist(figsize=(8,4), alpha=0.3, label=\"female\", bins=50)\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "У распределений длинные хвосты, есть выбросы в данных. Среднее чувствительно к выбросам, значит более корректно сравнивать \"типичных\" мальчиков и девочек с помощью медиан. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "male_dummy\n",
       "0    1.75\n",
       "1    1.50\n",
       "Name: photo_month_mean, dtype: float64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('male_dummy')['photo_month_mean'].agg('median')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Дисперсия, а значит и среднее квадратичное отклонение, чувствительны к выбросам. Чтобы полечить выборку от их тлетворного влияния, нужно сделать срез. Как отсечь выбросы? Ну например, можно считать выбросом всё, что пробивает $95\\%$ квантиль. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.837499999999999"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q = df['photo_month_mean'].quantile(0.95)\n",
    "q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[df.photo_month_mean < q].groupby('male_dummy')['photo_month_mean'].hist(figsize=(8,4), alpha=0.3, bins=30);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male_dummy</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2.420398</td>\n",
       "      <td>1.815699</td>\n",
       "      <td>1.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.130265</td>\n",
       "      <td>1.811635</td>\n",
       "      <td>1.500000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                mean       std    median\n",
       "male_dummy                              \n",
       "0           2.420398  1.815699  1.666667\n",
       "1           2.130265  1.811635  1.500000"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.photo_month_mean < q].groupby('male_dummy')['photo_month_mean'].agg(['mean', 'std', 'median'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Разброс между группами не различается. Если вы сразу догадались, что данные кишат выбросами и обрезали их, вы вполне себе можете теперь сравнивать типичных представителей по средним. Такой ответ тоже считается правильным. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[3] Немного сегментации__\n",
    "\n",
    "Давайте попробуем разбить всех людей из нашей таблички на равные сегменты по тому сколько у них есть друзей с потока (`friends_from_course_cnt`).  Для этого: \n",
    "\n",
    "* Заполните пропуски в переменной `friends_from_course_cnt`  нулями.\n",
    "* Найдите для переменной `friends_from_course_cnt` квантили уровня $0.25, 0.5, 0.75$. \n",
    "* Создайте колонку `segment` и заполните её по следующему принципу: \n",
    "    - Поставьте в неё $1$, если у человека друзей меньше, чем квантиль уровня $0.25$ \n",
    "    - Поставьте $2$, если у человека друзей от квантиля $0.25$ до $0.5$\n",
    "    - Поставьте $3$, если у человека друзей от квантиля $0.5$ до $0.75$\n",
    "    - Поставьте $4$, если у человека друзей от квантиля $0.75$\n",
    "    \n",
    "Получившиеся группы - это разные сегменты курса. Одни из них более социальные, другие менее социальные. Используя полученную колонку ответьте на вопросы: \n",
    "\n",
    "- Какое направление (БММ или УБ) оказалось более социальным? \n",
    "- Правда ли, что более социальные люди чаще лайкают мемы в вышкинской группе? \n",
    "- Чётко опишите все выводы, которые вы сделали. \n",
    "\n",
    "__Hint:__ для выявления группы для человека можно написать функцию, которая сравнит его число друзей со всеми квантилями и выдаст группу. Потом эту функцию можно применить к колонке с помощью `apply`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.friends_from_course_cnt.fillna(0, inplace=True)\n",
    "q = df.friends_from_course_cnt.quantile([0.25, 0.5, 0.75]).values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_segm(friends):\n",
    "    if friends <= q[0]:\n",
    "        return 1\n",
    "    elif (friends > q[0])&(friends <= q[1]):\n",
    "        return 2\n",
    "    elif (friends > q[1])&(friends <= q[2]):\n",
    "        return 3\n",
    "    else:\n",
    "        return 4\n",
    "    \n",
    "df['segment'] = df.friends_from_course_cnt.apply(find_segm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>segment</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>is_bmm</th>\n",
       "      <th>segment</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">False</th>\n",
       "      <th>1</th>\n",
       "      <td>63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">True</th>\n",
       "      <th>1</th>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                segment\n",
       "is_bmm segment         \n",
       "False  1             63\n",
       "       2             68\n",
       "       3             60\n",
       "       4             72\n",
       "True   1             45\n",
       "       2             42\n",
       "       3             48\n",
       "       4             27"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Дальше есть какие-нибудь групп баи вроде таких и пояснения: \n",
    "df.groupby(['is_bmm', 'segment']).agg({'segment': 'count'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>likes_memes</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>segment</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22.753623</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>17.550459</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>28.121495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>29.252525</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         likes_memes\n",
       "segment             \n",
       "1          22.753623\n",
       "2          17.550459\n",
       "3          28.121495\n",
       "4          29.252525"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('segment').agg({'likes_memes': 'mean'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__Ваши выводы и их обоснование:__ \n",
    "\n",
    "- Если тут не будет написано ваших пояснений, за задание вы получаете ноль баллов!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "--------"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__[n]  Удиви нас. Попробуй найти в данных какую-то классную особенность. Если у тебя это получится, мы поставим дополнительные баллы.__ Если вы найдёте полную фигню (сколько всего друзей у Маши или типа того), баллов не будет. Найденный факт реально должен выносить мозг и сносить крышу."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Попробуй меня на вкус!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Настрадался? Выскажи всё, что думаешь обо всём этом [в анонимке по третьему дз.](https://docs.google.com/forms/d/e/1FAIpQLSf5IFDJv8YsZDdkeLN4KXNU64zL9oXMtG5Rp36rsitOYOwYwQ/viewform) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}