{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"mount_file_id":"1kutDdvLwMbalcFlH8yapowLGb6D2G-Ph","authorship_tag":"ABX9TyMmdSTimz63aCvmfe6P18ln"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"7XkqASKKOgcp"},"source":["# приклад"]},{"cell_type":"markdown","metadata":{"id":"xu6_5u4IOnd8"},"source":["Дані цього блокноту дані отримані з веб-сайту: http://www.ssa.gov/oact/babynames/limits.html\n","\n","Дані завантажено та збережено у файлі **yob2010.txt**.\n","\n","Набір даних містить кортежі з такою структурою: (ім’я, стать, кількість народжених).\n","\n","Файл даних yob2010.txt слід зберігати в тому ж каталозі, щоб працював наступний код. Якщо у вас немає цього файлу даних, ви можете завантажити його з порталу\n"]},{"cell_type":"markdown","metadata":{"id":"Hau5-ELqOysv"},"source":["# Import numpy library\n","\n","Наступна команда імпортує бібліотеку numpy або встановлює, якщо вона ще не встановлена."]},{"cell_type":"code","source":[" import numpy as np\n"," import pandas as pd\n"],"metadata":{"id":"jdZwjqqJS3wV","executionInfo":{"status":"ok","timestamp":1707718008002,"user_tz":-120,"elapsed":454,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}}},"execution_count":1,"outputs":[]},{"cell_type":"code","metadata":{"id":"ryM-ikNFOdYL"},"source":["try:\n"," import numpy as np\n","except:\n"," !pip install numpy\n"," import numpy as np"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"9l463PMtO67_"},"source":["# Import pandas library"]},{"cell_type":"code","metadata":{"id":"YfccnTJYO-zJ"},"source":["try:\n"," import pandas as pd\n","except:\n"," !pip install pandas\n"," import pandas as pd"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"94M995Z2PDYm"},"source":["# Load data\n","\n","Використовуємо **read_csv pandas**, щоб прочитати файл даних у фреймі даних pandas. Аргумент names визначає імена стовпців для імпортованих даних. Функція **head()** покаже перші 5 рядків кадру даних."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"AAi-gpdfPRrs","executionInfo":{"status":"ok","timestamp":1707718269214,"user_tz":-120,"elapsed":749,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"107a8f44-03c1-469a-c7d7-e173dc8d662a"},"source":["names2010DF = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Лекції 2022-2023/yob2010.txt', names=['name','sex','births'])\n","names2010DF.head()"],"execution_count":2,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" name sex births\n","0 Isabella F 22925\n","1 Sophia F 20648\n","2 Emma F 17354\n","3 Olivia F 17030\n","4 Ava F 15436"],"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","
namesexbirths
0IsabellaF22925
1SophiaF20648
2EmmaF17354
3OliviaF17030
4AvaF15436
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":2}]},{"cell_type":"markdown","metadata":{"id":"AZUcZ5urPY-n"},"source":["# Створити новий стовпець\n","\n","Змінимо існуючий фрейм даних, додавши стовпці з пропорцією. Значення в цьому стовпчику буде означати частку немовлят, народжених з іменем у рядку, щодо загальної кількості народжених.\n"," Створимо функцію, яка визначатиме частку загальної кількості народжених.\n","\n","Функція **.astype(float)** передає значення у стовпець народження і додає значення до змінної births. Потім створюється новий стовпець з назвою **prop**."]},{"cell_type":"code","metadata":{"id":"21UQEukHPtSR","executionInfo":{"status":"ok","timestamp":1707718273203,"user_tz":-120,"elapsed":305,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}}},"source":["def add_prop(group):\n"," births = group.births.astype(float)\n"," group['prop'] = births / births.sum()\n"," return group"],"execution_count":3,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"fx8_6fqgPwTJ"},"source":["Застосувати функцію **add_prop** до фрейму даних. Згрупуємо за статтю за допомогою функції **groupby**, а потім застосуємо функцію **apply**"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":387},"id":"_YzWGZ-MP1P1","executionInfo":{"status":"ok","timestamp":1707718276500,"user_tz":-120,"elapsed":286,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"edcf6a27-7442-4aeb-f49d-318bf3b28264"},"source":["names2010DF = names2010DF.groupby(['sex']).apply(add_prop)\n","names2010DF.head()"],"execution_count":4,"outputs":[{"output_type":"stream","name":"stderr","text":[":1: FutureWarning: Not prepending group keys to the result index of transform-like apply. In the future, the group keys will be included in the index, regardless of whether the applied function returns a like-indexed object.\n","To preserve the previous behavior, use\n","\n","\t>>> .groupby(..., group_keys=False)\n","\n","To adopt the future behavior and silence this warning, use \n","\n","\t>>> .groupby(..., group_keys=True)\n"," names2010DF = names2010DF.groupby(['sex']).apply(add_prop)\n"]},{"output_type":"execute_result","data":{"text/plain":[" name sex births prop\n","0 Isabella F 22925 0.012907\n","1 Sophia F 20648 0.011625\n","2 Emma F 17354 0.009770\n","3 Olivia F 17030 0.009588\n","4 Ava F 15436 0.008690"],"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","
namesexbirthsprop
0IsabellaF229250.012907
1SophiaF206480.011625
2EmmaF173540.009770
3OliviaF170300.009588
4AvaF154360.008690
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":4}]},{"cell_type":"markdown","metadata":{"id":"uGWpwqx9P3tI"},"source":["Check prop column\n","\n","Перевіримо стовпець prop.Переконаємося, що значення в стовпці prop складають 1 у всіх групах за допомогою бібліотеки numpy."]},{"cell_type":"code","metadata":{"id":"mbQs8E7TQAUQ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1707718301659,"user_tz":-120,"elapsed":273,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"be2f6199-c125-46c4-d8ba-efe1043e8c21"},"source":["np.allclose(names2010DF.groupby('sex').prop.sum(),1)"],"execution_count":5,"outputs":[{"output_type":"execute_result","data":{"text/plain":["True"]},"metadata":{},"execution_count":5}]},{"cell_type":"markdown","metadata":{"id":"dKxy2J65P9Jr"},"source":["З набору даних виберемо 10 найпоширеніших імен для кожної статі. Створимо функцію, яка вибирае 10 найпоширеніших імен для кожної статі."]},{"cell_type":"code","metadata":{"id":"JeIW7kmVQHc7","executionInfo":{"status":"ok","timestamp":1707718304978,"user_tz":-120,"elapsed":287,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}}},"source":["def get_top10(group):\n"," return group.sort_values(by='births', ascending=False)[:10]"],"execution_count":6,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"ufAfwusjQMB8"},"source":["Застосуємо функцію до фрейму даних, щоб створити новий фрейм даних під назвою **top10**, що містить 10 найменувань для кожної статі."]},{"cell_type":"code","metadata":{"id":"y_di2gBRQLq6","colab":{"base_uri":"https://localhost:8080/","height":708},"executionInfo":{"status":"ok","timestamp":1707718307728,"user_tz":-120,"elapsed":288,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"b9ebf1d3-d6c0-44d4-a238-5932c2935caf"},"source":["top10 = names2010DF.groupby(['sex']).apply(get_top10)\n","top10"],"execution_count":7,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" name sex births prop\n","sex \n","F 0 Isabella F 22925 0.012907\n"," 1 Sophia F 20648 0.011625\n"," 2 Emma F 17354 0.009770\n"," 3 Olivia F 17030 0.009588\n"," 4 Ava F 15436 0.008690\n"," 5 Emily F 14278 0.008038\n"," 6 Abigail F 14250 0.008023\n"," 7 Madison F 13189 0.007425\n"," 8 Chloe F 11757 0.006619\n"," 9 Mia F 10644 0.005992\n","M 19823 Jacob M 22139 0.011546\n"," 19824 Ethan M 18008 0.009392\n"," 19825 Michael M 17366 0.009057\n"," 19826 Jayden M 17191 0.008966\n"," 19827 William M 17060 0.008897\n"," 19828 Alexander M 16759 0.008740\n"," 19829 Noah M 16463 0.008586\n"," 19830 Daniel M 15853 0.008268\n"," 19831 Aiden M 15544 0.008107\n"," 19832 Anthony M 15501 0.008084"],"text/html":["\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
namesexbirthsprop
sex
F0IsabellaF229250.012907
1SophiaF206480.011625
2EmmaF173540.009770
3OliviaF170300.009588
4AvaF154360.008690
5EmilyF142780.008038
6AbigailF142500.008023
7MadisonF131890.007425
8ChloeF117570.006619
9MiaF106440.005992
M19823JacobM221390.011546
19824EthanM180080.009392
19825MichaelM173660.009057
19826JaydenM171910.008966
19827WilliamM170600.008897
19828AlexanderM167590.008740
19829NoahM164630.008586
19830DanielM158530.008268
19831AidenM155440.008107
19832AnthonyM155010.008084
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":7}]},{"cell_type":"markdown","metadata":{"id":"u8VmD1lVQTcg"},"source":["Знайдемо кількість народжень із першою літерою кожного імені для кожної статі.\n","\n","*Спочатку створюємо просту вбудовану лямбда-функцію з назвою get_first_letter, яка витягує першу літеру з заданого рядка.*\n","\n","Потім прив'язуємо це до фрейму даних за допомогою функції **map** і зберігаємо в новому стовпці з назвою first_letter.\n"]},{"cell_type":"code","metadata":{"id":"5Z8eiSrhQg-f","colab":{"base_uri":"https://localhost:8080/","height":363},"executionInfo":{"status":"ok","timestamp":1707718313773,"user_tz":-120,"elapsed":284,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"05b506c9-3162-4644-ceb5-d71ba4bae588"},"source":["get_first_letter = lambda x: x[0]\n","names2010DF['first_letter'] = names2010DF.name.map(get_first_letter)\n","names2010DF.head(10)"],"execution_count":8,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" name sex births prop first_letter\n","0 Isabella F 22925 0.012907 I\n","1 Sophia F 20648 0.011625 S\n","2 Emma F 17354 0.009770 E\n","3 Olivia F 17030 0.009588 O\n","4 Ava F 15436 0.008690 A\n","5 Emily F 14278 0.008038 E\n","6 Abigail F 14250 0.008023 A\n","7 Madison F 13189 0.007425 M\n","8 Chloe F 11757 0.006619 C\n","9 Mia F 10644 0.005992 M"],"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","
namesexbirthspropfirst_letter
0IsabellaF229250.012907I
1SophiaF206480.011625S
2EmmaF173540.009770E
3OliviaF170300.009588O
4AvaF154360.008690A
5EmilyF142780.008038E
6AbigailF142500.008023A
7MadisonF131890.007425M
8ChloeF117570.006619C
9MiaF106440.005992M
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":8}]},{"cell_type":"markdown","metadata":{"id":"NFCHujh-Qkn-"},"source":["# Зведена таблиця\n","\n","Cтворимо зведену таблицю, яка показує кількість народжень для кожної першої літери щодо статі.\n"]},{"cell_type":"code","metadata":{"id":"ukBP43oIQo0i","colab":{"base_uri":"https://localhost:8080/","height":394},"executionInfo":{"status":"ok","timestamp":1707718318716,"user_tz":-120,"elapsed":322,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"7c58f676-4426-41f7-d61f-2d8ed0a423e1"},"source":["pTable = names2010DF.pivot_table('births', index=['first_letter'],\n"," columns=['sex'], aggfunc=sum)\n","pTable.head(10)"],"execution_count":9,"outputs":[{"output_type":"execute_result","data":{"text/plain":["sex F M\n","first_letter \n","A 312344 200701\n","B 64837 109456\n","C 97693 169966\n","D 47651 124502\n","E 120000 103530\n","F 14109 16325\n","G 49890 62442\n","H 47470 36727\n","I 47585 38124\n","J 119391 302367"],"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","
sexFM
first_letter
A312344200701
B64837109456
C97693169966
D47651124502
E120000103530
F1410916325
G4989062442
H4747036727
I4758538124
J119391302367
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":9}]},{"cell_type":"markdown","metadata":{"id":"r-efjV3WQr7p"},"source":["Знайдемо загальну кількість народжених для кожної статі"]},{"cell_type":"code","metadata":{"id":"0eiFrfafQzCY","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1707718322957,"user_tz":-120,"elapsed":296,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"cd189d95-47e4-45e1-8b74-1db84053f878"},"source":["pTable.sum()"],"execution_count":10,"outputs":[{"output_type":"execute_result","data":{"text/plain":["sex\n","F 1776223\n","M 1917416\n","dtype: int64"]},"metadata":{},"execution_count":10}]},{"cell_type":"markdown","metadata":{"id":"7N433ZyZQ1l6"},"source":["**Нормалізуэмо** результати. Результати нормуються шляхом ділення на загальну кількість імен."]},{"cell_type":"code","metadata":{"id":"ny86ZQiXQ6fN","colab":{"base_uri":"https://localhost:8080/","height":238},"executionInfo":{"status":"ok","timestamp":1707718331948,"user_tz":-120,"elapsed":317,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"bba13dcb-7ea0-4800-9cf2-efd6772b7122"},"source":["pTable = pTable / pTable.sum().astype('float')\n","pTable.head()"],"execution_count":11,"outputs":[{"output_type":"execute_result","data":{"text/plain":["sex F M\n","first_letter \n","A 0.175847 0.104673\n","B 0.036503 0.057085\n","C 0.055000 0.088643\n","D 0.026827 0.064932\n","E 0.067559 0.053995"],"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","
sexFM
first_letter
A0.1758470.104673
B0.0365030.057085
C0.0550000.088643
D0.0268270.064932
E0.0675590.053995
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","
\n","
\n"]},"metadata":{},"execution_count":11}]},{"cell_type":"markdown","metadata":{"id":"w24Aos88Q9Hm"},"source":["# Побудова графіку"]},{"cell_type":"code","metadata":{"id":"Avv7gEr7RBDt","executionInfo":{"status":"ok","timestamp":1707718341520,"user_tz":-120,"elapsed":282,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}}},"source":["try:\n"," import matplotlib.pyplot as plt\n","except:\n"," !pip install matplotlib\n"," import matplotlib.pyplot as plt"],"execution_count":12,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":640},"id":"xq39mcFyREPb","executionInfo":{"status":"ok","timestamp":1677229511322,"user_tz":-120,"elapsed":1300,"user":{"displayName":"Galina Marchuk","userId":"08159968800729403674"}},"outputId":"7724a397-01ff-4fda-dca0-f86ac5a0d171"},"source":["fig, axes = plt.subplots(2, 1, figsize=(10, 10))\n","pTable['M'].plot(kind='bar', rot=0, ax=axes[0], title='Male')\n","pTable['F'].plot(kind='bar', rot=0, ax=axes[1], title='Female',\n"," legend=False)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":23},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]}]}