{ "cells": [ { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Idiomatic Pandas\n", "## 5 Tips for Better Pandas Code" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## About Matt Harrison @\\_\\_mharrison\\_\\_\n", "\n", "* Author of Effective Pandas, Machine Learning Pocket Reference, and Illustrated Guide to Python 3.\n", "* Advisor at Ponder (creators of Modin)\n", "* Corporate trainer at MetaSnake. Taught Pandas to 1000's of students.\n", "* Upcoming Live Course https://maven.com/matt-harrison/data-analysis-using-pandas" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Practice this on your data with your team!\n", "* https://maven.com/matt-harrison/data-analysis-using-pandas\n", "* Contact me matt@metasnake.com\n", "* Follow on Twitter @\\_\\_mharrison\\_\\_" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Outline\n", "\n", "* Load Data\n", "* Types\n", "* Chaining\n", "* Mutation\n", "* Apply\n", "* Aggregation" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%matplotlib inline\n", "from IPython.display import display\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import io\n", "import zipfile\n", "#import modin.pandas as pd" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# https://gss.norc.org/get-the-data/stata\n", "# takes a few minutes on my computer to load\n", "#url ='https://github.com/mattharrison/datasets/blob/master/data/kaggle-survey-2018.zip?raw=true'\n", "path = '/mnt/c/Users/matt/Downloads/GSS_stata.zip'\n", "with zipfile.ZipFile(path) as z:\n", " print(z.namelist())\n", " gss = pd.read_stata(z.open('gss7221_r3.dta'))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# https://gss.norc.org/get-the-data/stata\n", "# takes a few minutes on my computer to load\n", "#url ='https://github.com/mattharrison/datasets/blob/master/data/kaggle-survey-2018.zip?raw=true'\n", "path = '/mnt/c/Users/matt/Downloads/gss_spss_with_codebook.zip'\n", "with zipfile.ZipFile(path) as z:\n", " print(z.namelist())\n", " with open('gss.sav', mode='bw') as fout:\n", " fout.write(z.open('GSS7218_R3.sav').read())\n", " gss = pd.read_spss('gss.sav')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!pip install pyreadstat" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "%%time\n", "import pyreadstat\n", "gss, meta = pyreadstat.read_sav('gss.sav')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gss.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gss.to_feather('gss.fth')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.29 s, sys: 9.76 s, total: 14 s\n", "Wall time: 2.09 s\n" ] } ], "source": [ "%%time\n", "raw = pd.read_feather('gss.fth')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDWRKSTATHRS1HRS2EVWORKOCCPRESTIGEWRKSLFWRKGOVT...NEISAFERLOOKSRGROOMEDRWEIGHTRHLTHENDWTSSWTSSNRWTSSALLVSTRATVPSU
01972.01.01.0NaNNaNNaN205.050.02.0NaN...NaNNaNNaNNaNNaN1.0000001.0000000.444600NaNNaN
11972.02.05.0NaNNaN1.0441.045.02.0NaN...NaNNaNNaNNaNNaN1.0000001.0000000.889300NaNNaN
21972.03.02.0NaNNaNNaN270.044.02.0NaN...NaNNaNNaNNaNNaN1.0000001.0000000.889300NaNNaN
31972.04.01.0NaNNaNNaN1.057.02.0NaN...NaNNaNNaNNaNNaN1.0000001.0000000.889300NaNNaN
41972.05.07.0NaNNaN1.0385.040.02.0NaN...NaNNaNNaNNaNNaN1.0000001.0000000.889300NaNNaN
..................................................................
648092018.02344.01.036.0NaNNaNNaNNaN2.01.0...1.0NaNNaNNaNNaN0.4714990.4824250.4714993378.02.0
648102018.02345.02.036.0NaNNaNNaNNaN2.02.0...1.03.03.02.01.00.9429970.9648500.9429973378.02.0
648112018.02346.05.0NaNNaN1.0NaNNaN2.02.0...1.04.04.03.0NaN0.9429970.9648500.9429973378.02.0
648122018.02347.05.0NaNNaN1.0NaNNaN2.02.0...1.03.03.02.02.00.9429970.9648500.9429973378.02.0
648132018.02348.07.0NaNNaN1.0NaNNaN2.01.0...1.03.04.03.0NaN0.4714990.4824250.4714993378.02.0
\n", "

64814 rows × 6110 columns

\n", "
" ], "text/plain": [ " YEAR ID WRKSTAT HRS1 HRS2 EVWORK OCC PRESTIGE WRKSLF \\\n", "0 1972.0 1.0 1.0 NaN NaN NaN 205.0 50.0 2.0 \n", "1 1972.0 2.0 5.0 NaN NaN 1.0 441.0 45.0 2.0 \n", "2 1972.0 3.0 2.0 NaN NaN NaN 270.0 44.0 2.0 \n", "3 1972.0 4.0 1.0 NaN NaN NaN 1.0 57.0 2.0 \n", "4 1972.0 5.0 7.0 NaN NaN 1.0 385.0 40.0 2.0 \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018.0 2344.0 1.0 36.0 NaN NaN NaN NaN 2.0 \n", "64810 2018.0 2345.0 2.0 36.0 NaN NaN NaN NaN 2.0 \n", "64811 2018.0 2346.0 5.0 NaN NaN 1.0 NaN NaN 2.0 \n", "64812 2018.0 2347.0 5.0 NaN NaN 1.0 NaN NaN 2.0 \n", "64813 2018.0 2348.0 7.0 NaN NaN 1.0 NaN NaN 2.0 \n", "\n", " WRKGOVT ... NEISAFE RLOOKS RGROOMED RWEIGHT RHLTHEND WTSS \\\n", "0 NaN ... NaN NaN NaN NaN NaN 1.000000 \n", "1 NaN ... NaN NaN NaN NaN NaN 1.000000 \n", "2 NaN ... NaN NaN NaN NaN NaN 1.000000 \n", "3 NaN ... NaN NaN NaN NaN NaN 1.000000 \n", "4 NaN ... NaN NaN NaN NaN NaN 1.000000 \n", "... ... ... ... ... ... ... ... ... \n", "64809 1.0 ... 1.0 NaN NaN NaN NaN 0.471499 \n", "64810 2.0 ... 1.0 3.0 3.0 2.0 1.0 0.942997 \n", "64811 2.0 ... 1.0 4.0 4.0 3.0 NaN 0.942997 \n", "64812 2.0 ... 1.0 3.0 3.0 2.0 2.0 0.942997 \n", "64813 1.0 ... 1.0 3.0 4.0 3.0 NaN 0.471499 \n", "\n", " WTSSNR WTSSALL VSTRAT VPSU \n", "0 1.000000 0.444600 NaN NaN \n", "1 1.000000 0.889300 NaN NaN \n", "2 1.000000 0.889300 NaN NaN \n", "3 1.000000 0.889300 NaN NaN \n", "4 1.000000 0.889300 NaN NaN \n", "... ... ... ... ... \n", "64809 0.482425 0.471499 3378.0 2.0 \n", "64810 0.964850 0.942997 3378.0 2.0 \n", "64811 0.964850 0.942997 3378.0 2.0 \n", "64812 0.964850 0.942997 3378.0 2.0 \n", "64813 0.482425 0.471499 3378.0 2.0 \n", "\n", "[64814 rows x 6110 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(64814, 6110)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## My Cleanup\n", "See GSS_Codebook.pdf for explanation\n", "\n", "Columns:\n", "\n", "* YEAR\n", "* ID - RESPONDENT ID NUMBER\n", "* AGE - AGE OF RESPONENT\n", "* HRS1 - NUMBER OF HOURS WORKED LAST WEEK\n", "* OCC - R'S CENSUS OCCUPATION CODE (1970) - Page 126 (VAR: OCC) see page 125 for notes APPENDIX F,G,H\n", " Appendix F - Page 3286\n", "* MAJOR1 - COLLEGE MAJOR 1\n", "* SEX - RESPONDENTS SEX\n", "* RACE - RACE OF RESPONDENT\n", "* BORN - WAS R BORN IN THIS COUNTRY\n", "* INCOME TOTAL FAMILY INCOME\n", "* INCOME06 TOTAL FAMILY INCOME\n", "* HONEST - HONEST\n", "* TICKET - EVER RECEIVED A TRAFFIC TICKET\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "YEAR 0.000000\n", "ID 0.000000\n", "AGE 0.351776\n", "HRS1 42.132873\n", "OCC 62.426328\n", "MAJOR1 94.410158\n", "SEX 0.000000\n", "RACE 0.000000\n", "BORN 14.291665\n", "INCOME 12.845990\n", "INCOME06 82.219891\n", "HONEST 87.565958\n", "TICKET 80.650785\n", "dtype: float64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols = ['YEAR','ID','AGE', 'HRS1','OCC','MAJOR1','SEX','RACE','BORN','INCOME',\n", " 'INCOME06','HONEST','TICKET']\n", "\n", "raw[cols].isna().mean()*100" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "41" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "False + 41" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "{1: 'Accounting/bookkeeping',\n", " 2: 'Advertising',\n", " 3: 'Agriculture/horticulture',\n", " 4: 'Allied health',\n", " 5: 'Anthropology',\n", " 6: 'Architecture',\n", " 7: 'Art',\n", " 8: 'Biology',\n", " 9: 'Business administration',\n", " 11: 'Chemistry',\n", " 12: 'Communications/speech',\n", " 13: 'Comm. disorders',\n", " 14: 'Computer science',\n", " 15: 'Dentistry',\n", " 16: 'Education',\n", " 17: 'Economics',\n", " 18: 'Engineering',\n", " 19: 'English',\n", " 20: 'Finance',\n", " 21: 'Foreign language',\n", " 22: 'Forestry',\n", " 23: 'Geography',\n", " 24: 'Geology',\n", " 25: 'History',\n", " 26: 'Home economics',\n", " 27: 'Industry & techn',\n", " 28: 'Journalism',\n", " 29: 'Law',\n", " 30: 'Law enforcement',\n", " 31: 'Library science',\n", " 32: 'Marketing',\n", " 33: 'Mathematics',\n", " 34: 'Medicine',\n", " 35: 'Music',\n", " 36: 'Nursing',\n", " 37: 'Optometry',\n", " 38: 'Pharmacy',\n", " 39: 'Philosophy',\n", " 40: 'Physical education',\n", " 41: 'Physics',\n", " 42: 'Psychology',\n", " 43: 'Political science/international relations',\n", " 44: 'Sociology',\n", " 45: 'Special education',\n", " 46: 'Theater arts',\n", " 47: 'Theology',\n", " 48: 'Veterinary medicine',\n", " 49: 'Liberal arts',\n", " 50: 'Other',\n", " 51: 'General sciences',\n", " 52: 'Social work',\n", " 53: 'General studies',\n", " 54: 'Other vocational',\n", " 55: 'Health',\n", " 56: 'Industrial Relations',\n", " 57: 'Child/Human/Family Development',\n", " 58: 'Food Science/Nutrition/Culinary Arts',\n", " 59: 'Environmental Science/Ecology',\n", " 60: 'Social Sciences',\n", " 61: 'Human Services/Human Resources',\n", " 62: 'Visual Arts/Graphic Design/Design and Drafting',\n", " 63: 'Fine Arts',\n", " 64: 'Humanities',\n", " 65: 'Ethnic studies',\n", " 66: 'Educational administration',\n", " 67: 'Television/Film',\n", " 68: 'Aviation/Aeronatics',\n", " 69: 'Statistics/Biostatistics',\n", " 70: 'Criminology/Criminal Justice',\n", " 71: 'Administrative Science/Public Administration',\n", " 72: 'Electronics',\n", " 73: 'Urban and Regional Planning',\n", " 74: 'Mechanics/Machine Trade',\n", " 75: 'Dance',\n", " 76: 'Gerontology',\n", " 77: 'Public Relations',\n", " 78: 'Textiles/Cloth',\n", " 79: 'Parks and Recreation',\n", " 80: 'Information Technology',\n", " 81: 'Fashion',\n", " 82: 'Counseling',\n", " 98: \"Don't know/UNCODED\",\n", " 99: 'No answer',\n", " 0: 'Not applicable'}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "MAJOR= '''RESPONSE PUNCH 1972-82 1982B 1983-87 1987B 1988-91 1993-98 2000-04 2006 2008 2010 2012 2014 2016 2018 ALL\n", "Accounting/bookkeeping 1 0 0 0 0 0 0 0 0 0 0 28 32 30 29 119\n", "Advertising 2 0 0 0 0 0 0 0 0 0 0 3 2 0 0 5\n", "Agriculture/horticulture 3 0 0 0 0 0 0 0 0 0 0 8 2 7 5 22\n", "Allied health 4 0 0 0 0 0 0 0 0 0 0 0 2 1 0 3\n", "Anthropology 5 0 0 0 0 0 0 0 0 0 0 3 5 1 1 10\n", "Architecture 6 0 0 0 0 0 0 0 0 0 0 2 3 5 3 13\n", "Art 7 0 0 0 0 0 0 0 0 0 0 6 7 11 10 34\n", "Biology 8 0 0 0 0 0 0 0 0 0 0 16 22 33 26 97\n", "Business administration 9 0 0 0 0 0 0 0 0 0 0 90 142 172 138 542\n", "Chemistry 11 0 0 0 0 0 0 0 0 0 0 5 8 10 4 27\n", "Communications/speech 12 0 0 0 0 0 0 0 0 0 0 20 18 26 18 82\n", "Comm. disorders 13 0 0 0 0 0 0 0 0 0 0 4 6 2 2 14\n", "Computer science 14 0 0 0 0 0 0 0 0 0 0 25 24 33 17 99\n", "Dentistry 15 0 0 0 0 0 0 0 0 0 0 2 4 3 5 14\n", "Education 16 0 0 0 0 0 0 0 0 0 0 73 91 97 79 340\n", "Economics 17 0 0 0 0 0 0 0 0 0 0 11 19 13 19 62\n", "Engineering 18 0 0 0 0 0 0 0 0 0 0 47 49 47 54 197\n", "English 19 0 0 0 0 0 0 0 0 0 0 23 26 27 24 100\n", "Finance 20 0 0 0 0 0 0 0 0 0 0 7 15 14 16 52\n", "Foreign language 21 0 0 0 0 0 0 0 0 0 0 4 8 6 5 23\n", "Forestry 22 0 0 0 0 0 0 0 0 0 0 1 0 3 0 4\n", "Geography 23 0 0 0 0 0 0 0 0 0 0 0 2 2 4 8\n", "Geology 24 0 0 0 0 0 0 0 0 0 0 1 3 4 2 10\n", "History 25 0 0 0 0 0 0 0 0 0 0 10 19 14 19 62\n", "Home economics 26 0 0 0 0 0 0 0 0 0 0 0 0 3 2 5\n", "Industry & techn 27 0 0 0 0 0 0 0 0 0 0 3 4 6 0 13\n", "Journalism 28 0 0 0 0 0 0 0 0 0 0 5 6 6 4 21\n", "Law 29 0 0 0 0 0 0 0 0 0 0 13 18 23 14 68\n", "Law enforcement 30 0 0 0 0 0 0 0 0 0 0 3 5 4 2 14\n", "Library science 31 0 0 0 0 0 0 0 0 0 0 4 5 2 3 14\n", "Marketing 32 0 0 0 0 0 0 0 0 0 0 11 15 13 12 51\n", "Mathematics 33 0 0 0 0 0 0 0 0 0 0 5 10 12 5 32\n", "Medicine 34 0 0 0 0 0 0 0 0 0 0 9 25 12 11 57\n", "Music 35 0 0 0 0 0 0 0 0 0 0 4 2 10 2 18\n", "Nursing 36 0 0 0 0 0 0 0 0 0 0 36 39 60 51 186\n", "Optometry 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", "Pharmacy 38 0 0 0 0 0 0 0 0 0 0 2 5 4 4 15\n", "Philosophy 39 0 0 0 0 0 0 0 0 0 0 2 0 2 2 6\n", "Physical education 40 0 0 0 0 0 0 0 0 0 0 9 6 16 6 37\n", "Physics 41 0 0 0 0 0 0 0 0 0 0 3 6 7 4 20\n", "Psychology 42 0 0 0 0 0 0 0 0 0 0 32 32 34 29 127\n", "Political science/international relations 43 0 0 0 0 0 0 0 0 0 0 16 22 19 14 71\n", "Sociology 44 0 0 0 0 0 0 0 0 0 0 9 15 10 12 46\n", "Special education 45 0 0 0 0 0 0 0 0 0 0 5 3 5 2 15\n", "Theater arts 46 0 0 0 0 0 0 0 0 0 0 6 2 3 1 12\n", "Theology 47 0 0 0 0 0 0 0 0 0 0 6 6 13 8 33\n", "Veterinary medicine 48 0 0 0 0 0 0 0 0 0 0 1 5 3 4 13\n", "Liberal arts 49 0 0 0 0 0 0 0 0 0 0 8 16 12 10 46\n", "Other 50 0 0 0 0 0 0 0 0 0 0 8 10 21 27 66\n", "General sciences 51 0 0 0 0 0 0 0 0 0 0 10 13 15 14 52\n", "Social work 52 0 0 0 0 0 0 0 0 0 0 7 17 24 7 55\n", "General studies 53 0 0 0 0 0 0 0 0 0 0 2 5 7 7 21\n", "Other vocational 54 0 0 0 0 0 0 0 0 0 0 5 11 6 5 27\n", "Health 55 0 0 0 0 0 0 0 0 0 0 23 31 31 42 127\n", "Industrial Relations 56 0 0 0 0 0 0 0 0 0 0 1 0 0 3 4\n", "Child/Human/Family Development 57 0 0 0 0 0 0 0 0 0 0 11 3 7 7 28\n", "Food Science/Nutrition/Culinary Arts 58 0 0 0 0 0 0 0 0 0 0 3 6 9 9 27\n", "Environmental Science/Ecology 59 0 0 0 0 0 0 0 0 0 0 5 5 6 8 24\n", "Social Sciences 60 0 0 0 0 0 0 0 0 0 0 4 2 7 5 18\n", "Human Services/Human Resources 61 0 0 0 0 0 0 0 0 0 0 3 7 7 5 22\n", "Visual Arts/Graphic Design/Design and Drafting 62 0 0 0 0 0 0 0 0 0 0 3 8 9 10 30\n", "Fine Arts 63 0 0 0 0 0 0 0 0 0 0 4 5 5 6 20\n", "Humanities 64 0 0 0 0 0 0 0 0 0 0 0 2 0 1 3\n", "Ethnic studies 65 0 0 0 0 0 0 0 0 0 0 3 1 0 0 4\n", "Educational administration 66 0 0 0 0 0 0 0 0 0 0 3 4 8 9 24\n", "Television/Film 67 0 0 0 0 0 0 0 0 0 0 0 2 6 1 9\n", "Aviation/Aeronatics 68 0 0 0 0 0 0 0 0 0 0 2 1 1 3 7\n", "Statistics/Biostatistics 69 0 0 0 0 0 0 0 0 0 0 0 0 2 2 4\n", "Criminology/Criminal Justice 70 0 0 0 0 0 0 0 0 0 0 13 17 17 13 60\n", "Administrative Science/Public Administration 71 0 0 0 0 0 0 0 0 0 0 2 11 3 5 21\n", "Electronics 72 0 0 0 0 0 0 0 0 0 0 6 6 5 9 26\n", "Urban and Regional Planning 73 0 0 0 0 0 0 0 0 0 0 1 1 3 2 7\n", "Mechanics/Machine Trade 74 0 0 0 0 0 0 0 0 0 0 0 1 1 4 6\n", "Dance 75 0 0 0 0 0 0 0 0 0 0 1 0 1 1 3\n", "Gerontology 76 0 0 0 0 0 0 0 0 0 0 1 0 1 1 3\n", "Public Relations 77 0 0 0 0 0 0 0 0 0 0 3 1 2 1 7\n", "Textiles/Cloth 78 0 0 0 0 0 0 0 0 0 0 3 4 0 0 7\n", "Parks and Recreation 79 0 0 0 0 0 0 0 0 0 0 1 2 1 0 4\n", "Information Technology 80 0 0 0 0 0 0 0 0 0 0 0 5 8 11 24\n", "Fashion 81 0 0 0 0 0 0 0 0 0 0 0 0 3 1 4\n", "Counseling 82 0 0 0 0 0 0 0 0 0 0 0 0 11 9 20\n", "Don't know/UNCODED 98 0 0 0 0 0 0 0 0 0 0 2 3 0 0 5\n", "No answer 99 0 0 0 0 0 0 0 0 0 0 0 1 5 3 9\n", "Not applicable 0 13626 354 7542 353 5907 10334 8394 4510 2023 2044 1263 1597 1795 1435 61177'''\n", "\n", "# copy paste slight tweak from page 186\n", "major_dict = {int(row.split()[-16]): ' '.join(row.split()[:-16]) for row in MAJOR.split('\\n')[1:]}\n", "major_dict" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": true }, "outputs": [], "source": [ "(raw\n", " [cols]\n", " .assign(\n", " MAJOR1=lambda a_df:a_df.MAJOR1.fillna(99).astype(int).replace(major_dict),\n", " SEX=lambda a_df:a_df.SEX.astype(int).replace({1:'Male', 2:'Female'}),\n", " RACE=lambda a_df:a_df.RACE.astype(int).replace({1:'White', 2:'Black', 3:'Other'}),\n", " OCC=lambda a_df:a_df.OCC.fillna(9999).astype(int),\n", " BORN=lambda a_df:a_df.BORN.fillna(4).astype(int).replace({1:'Yes', 2:'No', 3:'Don\\'t Know',\n", " 4:'No answer', 5:'Not applicable'}),\n", " INCOME=lambda a_df:a_df.INCOME.fillna(99).astype(int).replace({99:'No answer', **dict(enumerate(['Not applicable',\n", " 0,1000,3000,4000,5000,6000,\n", " 7000,8000,10000,15000,20000,25000,]))}),\n", " INCOME06=lambda a_df:a_df.INCOME06.fillna(26).astype(int).replace({26:'Refused', **dict(enumerate(['Not applicable',\n", " 0,1000,3000,4000,5000,6000,\n", " 7000,8000,10000,12500,15000,\n", " 17500,20000,22500,25000,30_000,\n", " 35_000, 40_000, 50_000, 60_000,\n", " 75_000, 90_000, 110_000, 130_000,\n", " 150_000]))}),\n", " HONEST=lambda a_df:a_df.HONEST.fillna(9).astype(int).replace({1:'Most desirable', 2:'3 most desireable',\n", " 3:'Not mentioned', 4: '3 least desireable',\n", " 5: 'One least desireable',\n", " 9:'No answer'}),\n", " TICKET=lambda a_df:a_df.TICKET.fillna(9).astype(int).replace({1:'Yes', 2:'No', 3:'Refused', 9: 'No answer'}),\n", " )\n", " .astype({'YEAR':int, 'ID': int})\n", " .to_csv('GSS.csv')\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Types\n", "Getting the right types will enable analysis and correctness.\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 87.5 ms, sys: 0 ns, total: 87.5 ms\n", "Wall time: 121 ms\n" ] } ], "source": [ "%%time\n", "gss = pd.read_csv('GSS.csv', index_col=0)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "YEAR int64\n", "ID int64\n", "AGE float64\n", "HRS1 float64\n", "OCC int64\n", "MAJOR1 object\n", "SEX object\n", "RACE object\n", "BORN object\n", "INCOME object\n", "INCOME06 object\n", "HONEST object\n", "TICKET object\n", "dtype: object" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gss.dtypes" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female White Yes \n", "64810 2018 2345 75.0 36.0 9999 No answer Female White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64809 No answer Refused No answer No answer \n", "64810 25000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gss" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "Index 518512\n", "YEAR 518512\n", "ID 518512\n", "AGE 518512\n", "HRS1 518512\n", "OCC 518512\n", "MAJOR1 4298143\n", "SEX 4026054\n", "RACE 4018468\n", "BORN 3939308\n", "INCOME 4038832\n", "INCOME06 4125036\n", "HONEST 4323425\n", "TICKET 4195986\n", "dtype: int64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gss.memory_usage(deep=True)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "36076324" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 36 M\n", "gss.memory_usage(deep=True).sum()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Ints" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "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", "
YEARIDOCC
count64814.00000064814.00000064814.000000
mean1994.9391801151.8102116418.583284
std13.465368828.0302334618.278478
min1972.0000001.0000001.000000
25%1984.000000507.000000613.000000
50%1996.0000001029.5000009999.000000
75%2006.0000001570.0000009999.000000
max2018.0000004510.0000009999.000000
\n", "
" ], "text/plain": [ " YEAR ID OCC\n", "count 64814.000000 64814.000000 64814.000000\n", "mean 1994.939180 1151.810211 6418.583284\n", "std 13.465368 828.030233 4618.278478\n", "min 1972.000000 1.000000 1.000000\n", "25% 1984.000000 507.000000 613.000000\n", "50% 1996.000000 1029.500000 9999.000000\n", "75% 2006.000000 1570.000000 9999.000000\n", "max 2018.000000 4510.000000 9999.000000" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gss.select_dtypes(int).describe()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": false }, "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", "
YEARIDOCC
count64814.00000064814.00000064814.000000
mean1994.9391801151.8102116418.583284
std13.465368828.0302334618.278478
min1972.0000001.0000001.000000
25%1984.000000507.000000613.000000
50%1996.0000001029.5000009999.000000
75%2006.0000001570.0000009999.000000
max2018.0000004510.0000009999.000000
\n", "
" ], "text/plain": [ " YEAR ID OCC\n", "count 64814.000000 64814.000000 64814.000000\n", "mean 1994.939180 1151.810211 6418.583284\n", "std 13.465368 828.030233 4618.278478\n", "min 1972.000000 1.000000 1.000000\n", "25% 1984.000000 507.000000 613.000000\n", "50% 1996.000000 1029.500000 9999.000000\n", "75% 2006.000000 1570.000000 9999.000000\n", "max 2018.000000 4510.000000 9999.000000" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "(gss\n", " .select_dtypes(int)\n", " .describe()\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [], "source": [ "# can comb08 be an int8?\n", "# Do completion on int\n", "np.iinfo(np.int)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "iinfo(min=0, max=255, dtype=uint8)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.iinfo(np.uint8)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "iinfo(min=0, max=65535, dtype=uint16)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.iinfo(np.uint16)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "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", "
YEARIDOCC
count64814.00000064814.00000064814.000000
mean1994.9391801151.8102116418.583284
std13.465368828.0302334618.278478
min1972.0000001.0000001.000000
25%1984.000000507.000000613.000000
50%1996.0000001029.5000009999.000000
75%2006.0000001570.0000009999.000000
max2018.0000004510.0000009999.000000
\n", "
" ], "text/plain": [ " YEAR ID OCC\n", "count 64814.000000 64814.000000 64814.000000\n", "mean 1994.939180 1151.810211 6418.583284\n", "std 13.465368 828.030233 4618.278478\n", "min 1972.000000 1.000000 1.000000\n", "25% 1984.000000 507.000000 613.000000\n", "50% 1996.000000 1029.500000 9999.000000\n", "75% 2006.000000 1570.000000 9999.000000\n", "max 2018.000000 4510.000000 9999.000000" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' })\n", " .select_dtypes([int, 'uint16'])\n", " .describe()\n", ")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "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", "
YEARIDOCC
count64814.00000064814.00000064814.000000
mean1994.9391801151.8102116418.583284
std13.465368828.0302334618.278478
min1972.0000001.0000001.000000
25%1984.000000507.000000613.000000
50%1996.0000001029.5000009999.000000
75%2006.0000001570.0000009999.000000
max2018.0000004510.0000009999.000000
\n", "
" ], "text/plain": [ " YEAR ID OCC\n", "count 64814.000000 64814.000000 64814.000000\n", "mean 1994.939180 1151.810211 6418.583284\n", "std 13.465368 828.030233 4618.278478\n", "min 1972.000000 1.000000 1.000000\n", "25% 1984.000000 507.000000 613.000000\n", "50% 1996.000000 1029.500000 9999.000000\n", "75% 2006.000000 1570.000000 9999.000000\n", "max 2018.000000 4510.000000 9999.000000" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "# use 'integer' so see all int-like columns\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' })\n", " .select_dtypes(['integer']) # see https://numpy.org/doc/stable/reference/arrays.scalars.html\n", " .describe()\n", ")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "34909672" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "# use 'integer' so see all int-like columns\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' })\n", " #.select_dtypes(['integer']) # see https://numpy.org/doc/stable/reference/arrays.scalars.html\n", " .memory_usage(deep=True)\n", " .sum() # was 36M\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Floats" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": false }, "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", "
AGEHRS1
023.0NaN
170.0NaN
248.0NaN
327.0NaN
461.0NaN
.........
6480937.036.0
6481075.036.0
6481167.0NaN
6481272.0NaN
6481379.0NaN
\n", "

64814 rows × 2 columns

\n", "
" ], "text/plain": [ " AGE HRS1\n", "0 23.0 NaN\n", "1 70.0 NaN\n", "2 48.0 NaN\n", "3 27.0 NaN\n", "4 61.0 NaN\n", "... ... ...\n", "64809 37.0 36.0\n", "64810 75.0 36.0\n", "64811 67.0 NaN\n", "64812 72.0 NaN\n", "64813 79.0 NaN\n", "\n", "[64814 rows x 2 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss\n", ".select_dtypes('float'))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 37506.000000\n", "mean 41.303711\n", "std 14.171808\n", "min 0.000000\n", "25% 37.000000\n", "50% 40.000000\n", "75% 48.000000\n", "max 89.000000\n", "Name: HRS1, dtype: float64" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# surprise! age and hours worked looks int-like\n", "gss.HRS1.describe()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "NaN 27308\n", "40.0 12866\n", "50.0 2806\n", "60.0 1981\n", "45.0 1858\n", " ... \n", "0.0 7\n", "81.0 3\n", "79.0 3\n", "71.0 3\n", "87.0 3\n", "Name: HRS1, Length: 91, dtype: int64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# opps! missing values\n", "gss.HRS1.value_counts(dropna=False)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648072018234268.0NaN9999No answerFemaleWhiteYes8000RefusedNo answerNo answer
648082018234319.0NaN9999No answerMaleWhiteYes15000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

27308 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64807 2018 2342 68.0 NaN 9999 No answer Female White Yes \n", "64808 2018 2343 19.0 NaN 9999 No answer Male White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64807 8000 Refused No answer No answer \n", "64808 15000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[27308 rows x 13 columns]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# where are they missing?\n", "(gss\n", " .query('HRS1.isna()')\n", ")" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
2281972229NaNNaN280No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
3441972345NaNNaN9999No answerFemaleBlackNo answerNo answerRefusedNo answerNo answer
103819721039NaNNaN370No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
142719721428NaNNaN902No answerMaleBlackNo answerNo answerRefusedNo answerNo answer
155319721554NaNNaN395No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
631242018659NaNNaN9999No answerFemaleBlackYes25000RefusedNo answerNo answer
6390620181441NaN16.09999No answerFemaleWhiteYes20000RefusedNo answerNo answer
6393820181473NaN40.09999Business administrationMaleBlackYes25000RefusedNo answerNo answer
6402720181562NaN50.09999No answerMaleWhiteYes25000RefusedNo answerNo answer
6442820181963NaN40.09999OtherMaleOtherYesNo answerRefusedNo answerNo answer
\n", "

228 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE \\\n", "228 1972 229 NaN NaN 280 No answer Male White \n", "344 1972 345 NaN NaN 9999 No answer Female Black \n", "1038 1972 1039 NaN NaN 370 No answer Female White \n", "1427 1972 1428 NaN NaN 902 No answer Male Black \n", "1553 1972 1554 NaN NaN 395 No answer Female White \n", "... ... ... ... ... ... ... ... ... \n", "63124 2018 659 NaN NaN 9999 No answer Female Black \n", "63906 2018 1441 NaN 16.0 9999 No answer Female White \n", "63938 2018 1473 NaN 40.0 9999 Business administration Male Black \n", "64027 2018 1562 NaN 50.0 9999 No answer Male White \n", "64428 2018 1963 NaN 40.0 9999 Other Male Other \n", "\n", " BORN INCOME INCOME06 HONEST TICKET \n", "228 No answer No answer Refused No answer No answer \n", "344 No answer No answer Refused No answer No answer \n", "1038 No answer No answer Refused No answer No answer \n", "1427 No answer No answer Refused No answer No answer \n", "1553 No answer No answer Refused No answer No answer \n", "... ... ... ... ... ... \n", "63124 Yes 25000 Refused No answer No answer \n", "63906 Yes 20000 Refused No answer No answer \n", "63938 Yes 25000 Refused No answer No answer \n", "64027 Yes 25000 Refused No answer No answer \n", "64428 Yes No answer Refused No answer No answer \n", "\n", "[228 rows x 13 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# where are they missing?\n", "(gss\n", " .query('AGE.isna()')\n", ")" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
2281972229NaNNaN280No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
1841197322947.040.0394No answerFemaleWhiteNo answer8000RefusedNot mentionedYes
3345197422938.0NaN602No answerFemaleOtherNo answer20000RefusedNo answerNo
4829197522963.040.0461No answerMaleWhiteNo answer10000RefusedMost desirableNo answer
6319197622937.040.0126No answerFemaleWhiteNo answer20000RefusedMost desirableNo
7818197722965.0NaN503No answerMaleWhiteYes5000RefusedNo answerNo
9348197822944.036.0230No answerFemaleWhiteYes25000RefusedMost desirableNo answer
10880198022923.0NaN910No answerFemaleWhiteYes10000RefusedNo answerYes
12348198222975.0NaN492No answerMaleWhiteNo6000RefusedNo answerYes
14208198322936.048.0680No answerMaleWhiteYes20000RefusedMost desirableNo answer
15807198422952.040.0690No answerFemaleWhiteYes25000RefusedNo answerNo
17280198522938.0NaN902No answerFemaleBlackYes4000RefusedNo answerNo answer
18814198622932.089.065No answerMaleOtherNo20000RefusedNo answerNo answer
20284198722951.050.0315No answerMaleWhiteYes25000RefusedNo answerNo answer
22103198822960.040.045No answerMaleWhiteYesNo answerRefusedNo answerNo answer
23584198922928.0NaN3No answerMaleWhiteYes25000RefusedNo answerNo answer
25121199022941.037.0510No answerMaleOtherYes10000RefusedNo answerNo answer
26493199122921.015.09999No answerFemaleBlackYes10000RefusedNo answerNo answer
28010199322950.040.09999No answerMaleWhiteYes25000RefusedNo answerNo answer
29616199422927.040.09999No answerFemaleBlackYes20000RefusedNo answerNo answer
32608199622938.070.09999No answerMaleWhiteYes20000RefusedNo answerNo answer
35512199822936.089.09999No answerMaleWhiteYes25000RefusedNo answerNo answer
38344200022953.046.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
41161200222982.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
43926200422926.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
46738200622925.040.09999No answerMaleOtherNo2000020000No answerNo answer
51248200822970.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
53271201022955.072.09999No answerMaleWhiteNo2500030000No answerNo answer
55315201222948.040.09999No answerFemaleWhiteNo2500040000No answerNo
57289201422943.014.09999No answerMaleWhiteYes1000010000No answerNo answer
59827201622933.040.09999Television/FilmFemaleWhiteYes25000RefusedNo answerNo answer
62694201822948.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "228 1972 229 NaN NaN 280 No answer Male White No answer \n", "1841 1973 229 47.0 40.0 394 No answer Female White No answer \n", "3345 1974 229 38.0 NaN 602 No answer Female Other No answer \n", "4829 1975 229 63.0 40.0 461 No answer Male White No answer \n", "6319 1976 229 37.0 40.0 126 No answer Female White No answer \n", "7818 1977 229 65.0 NaN 503 No answer Male White Yes \n", "9348 1978 229 44.0 36.0 230 No answer Female White Yes \n", "10880 1980 229 23.0 NaN 910 No answer Female White Yes \n", "12348 1982 229 75.0 NaN 492 No answer Male White No \n", "14208 1983 229 36.0 48.0 680 No answer Male White Yes \n", "15807 1984 229 52.0 40.0 690 No answer Female White Yes \n", "17280 1985 229 38.0 NaN 902 No answer Female Black Yes \n", "18814 1986 229 32.0 89.0 65 No answer Male Other No \n", "20284 1987 229 51.0 50.0 315 No answer Male White Yes \n", "22103 1988 229 60.0 40.0 45 No answer Male White Yes \n", "23584 1989 229 28.0 NaN 3 No answer Male White Yes \n", "25121 1990 229 41.0 37.0 510 No answer Male Other Yes \n", "26493 1991 229 21.0 15.0 9999 No answer Female Black Yes \n", "28010 1993 229 50.0 40.0 9999 No answer Male White Yes \n", "29616 1994 229 27.0 40.0 9999 No answer Female Black Yes \n", "32608 1996 229 38.0 70.0 9999 No answer Male White Yes \n", "35512 1998 229 36.0 89.0 9999 No answer Male White Yes \n", "38344 2000 229 53.0 46.0 9999 No answer Female White Yes \n", "41161 2002 229 82.0 NaN 9999 No answer Female White Yes \n", "43926 2004 229 26.0 NaN 9999 No answer Female White Yes \n", "46738 2006 229 25.0 40.0 9999 No answer Male Other No \n", "51248 2008 229 70.0 NaN 9999 No answer Female White Yes \n", "53271 2010 229 55.0 72.0 9999 No answer Male White No \n", "55315 2012 229 48.0 40.0 9999 No answer Female White No \n", "57289 2014 229 43.0 14.0 9999 No answer Male White Yes \n", "59827 2016 229 33.0 40.0 9999 Television/Film Female White Yes \n", "62694 2018 229 48.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "228 No answer Refused No answer No answer \n", "1841 8000 Refused Not mentioned Yes \n", "3345 20000 Refused No answer No \n", "4829 10000 Refused Most desirable No answer \n", "6319 20000 Refused Most desirable No \n", "7818 5000 Refused No answer No \n", "9348 25000 Refused Most desirable No answer \n", "10880 10000 Refused No answer Yes \n", "12348 6000 Refused No answer Yes \n", "14208 20000 Refused Most desirable No answer \n", "15807 25000 Refused No answer No \n", "17280 4000 Refused No answer No answer \n", "18814 20000 Refused No answer No answer \n", "20284 25000 Refused No answer No answer \n", "22103 No answer Refused No answer No answer \n", "23584 25000 Refused No answer No answer \n", "25121 10000 Refused No answer No answer \n", "26493 10000 Refused No answer No answer \n", "28010 25000 Refused No answer No answer \n", "29616 20000 Refused No answer No answer \n", "32608 20000 Refused No answer No answer \n", "35512 25000 Refused No answer No answer \n", "38344 25000 Refused No answer No answer \n", "41161 25000 Refused No answer No answer \n", "43926 25000 Refused No answer No answer \n", "46738 20000 20000 No answer No answer \n", "51248 No answer Refused No answer No answer \n", "53271 25000 30000 No answer No answer \n", "55315 25000 40000 No answer No \n", "57289 10000 10000 No answer No answer \n", "59827 25000 Refused No answer No answer \n", "62694 25000 Refused No answer No answer " ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# where are they missing?\n", "# It turns out that ID is not consistent across years\n", "(gss\n", " .query('ID == 229')\n", ")" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female White Yes \n", "64810 2018 2345 75.0 36.0 9999 No answer Female White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64809 No answer Refused No answer No answer \n", "64810 25000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "# use 'integer' so see all int-like columns\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16'})\n", ")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "34131904" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "# use 'integer' so see all int-like columns\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16'})\n", " .memory_usage(deep=True)\n", " .sum() # was 36M\n", ")" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "YEAR uint16\n", "ID uint16\n", "AGE float16\n", "HRS1 float16\n", "OCC uint16\n", "MAJOR1 object\n", "SEX object\n", "RACE object\n", "BORN object\n", "INCOME object\n", "INCOME06 object\n", "HONEST object\n", "TICKET object\n", "dtype: object" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# chaining\n", "# use 'integer' so see all int-like columns\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16'})\n", " .dtypes\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Objects" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
0No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
1No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
2No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
3No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
4No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
...........................
64809No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
64810No answerFemaleWhiteYes25000RefusedNo answerNo answer
64811No answerFemaleWhiteYes25000RefusedNo answerNo answer
64812No answerMaleWhiteYes25000RefusedNo answerNo answer
64813No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 8 columns

\n", "
" ], "text/plain": [ " MAJOR1 SEX RACE BORN INCOME INCOME06 HONEST \\\n", "0 No answer Female White No answer No answer Refused No answer \n", "1 No answer Male White No answer No answer Refused No answer \n", "2 No answer Female White No answer No answer Refused No answer \n", "3 No answer Female White No answer No answer Refused No answer \n", "4 No answer Female White No answer No answer Refused No answer \n", "... ... ... ... ... ... ... ... \n", "64809 No answer Female White Yes No answer Refused No answer \n", "64810 No answer Female White Yes 25000 Refused No answer \n", "64811 No answer Female White Yes 25000 Refused No answer \n", "64812 No answer Male White Yes 25000 Refused No answer \n", "64813 No answer Female White Yes No answer Refused No answer \n", "\n", " TICKET \n", "0 No answer \n", "1 No answer \n", "2 No answer \n", "3 No answer \n", "4 No answer \n", "... ... \n", "64809 No answer \n", "64810 No answer \n", "64811 No answer \n", "64812 No answer \n", "64813 No answer \n", "\n", "[64814 rows x 8 columns]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss\n", " .select_dtypes(object)\n", ")" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "No answer 61191\n", "Business administration 542\n", "Education 340\n", "Engineering 197\n", "Nursing 186\n", " ... \n", "Ethnic studies 4\n", "Gerontology 3\n", "Humanities 3\n", "Allied health 3\n", "Dance 3\n", "Name: MAJOR1, Length: 81, dtype: int64" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# looks categorical\n", "(gss.MAJOR1.value_counts(dropna=False))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "29906506" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# wow!\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category'})\n", " .memory_usage(deep=True)\n", " .sum() # was 36M\n", ")\n" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['MAJOR1', 'SEX', 'RACE', 'BORN', 'INCOME', 'INCOME06', 'HONEST',\n", " 'TICKET'],\n", " dtype='object')" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss\n", " .select_dtypes(object)\n", " .columns\n", ")" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "lines_to_next_cell": 0, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "1698973" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# wow!\n", "(gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " .memory_usage(deep=True)\n", " .sum() # was 36M now 1.6M\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 45, "metadata": { "lines_to_next_cell": 0, "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female White Yes \n", "64810 2018 2345 75.0 36.0 9999 No answer Female White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64809 No answer Refused No answer No answer \n", "64810 25000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# a glorious function\n", "def tweak_gss(gss):\n", " return (gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " )\n", "\n", "tweak_gss(gss)" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "source": [ "## Fix Column Names" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "lines_to_next_cell": 0, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearyear_idagehours_workedoccupationcollege_majorsexraceborn_in_USincome_1970income_2006honesty_rankinttraffic_ticket
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " year year_id age hours_worked occupation college_major sex \\\n", "0 1972 1 23.0 NaN 205 No answer Female \n", "1 1972 2 70.0 NaN 441 No answer Male \n", "2 1972 3 48.0 NaN 270 No answer Female \n", "3 1972 4 27.0 NaN 1 No answer Female \n", "4 1972 5 61.0 NaN 385 No answer Female \n", "... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female \n", "64810 2018 2345 75.0 36.0 9999 No answer Female \n", "64811 2018 2346 67.0 NaN 9999 No answer Female \n", "64812 2018 2347 72.0 NaN 9999 No answer Male \n", "64813 2018 2348 79.0 NaN 9999 No answer Female \n", "\n", " race born_in_US income_1970 income_2006 honesty_rankint traffic_ticket \n", "0 White No answer No answer Refused No answer No answer \n", "1 White No answer No answer Refused No answer No answer \n", "2 White No answer No answer Refused No answer No answer \n", "3 White No answer No answer Refused No answer No answer \n", "4 White No answer No answer Refused No answer No answer \n", "... ... ... ... ... ... ... \n", "64809 White Yes No answer Refused No answer No answer \n", "64810 White Yes 25000 Refused No answer No answer \n", "64811 White Yes 25000 Refused No answer No answer \n", "64812 White Yes 25000 Refused No answer No answer \n", "64813 White Yes No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# a glorious function\n", "def tweak_gss(gss):\n", " return (gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " .rename(columns={'YEAR': 'year', 'ID': 'year_id', 'AGE':'age', \n", " 'HRS1': 'hours_worked', 'OCC': 'occupation', \n", " 'MAJOR1': 'college_major', 'SEX':'sex', \n", " 'RACE':'race', 'BORN':'born_in_US',\n", " 'INCOME':'income_1970', 'INCOME06': 'income_2006',\n", " 'HONEST':'honesty_rankint',\n", " 'TICKET':'traffic_ticket'})\n", " )\n", "\n", "tweak_gss(gss)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Chain\n", "\n", "Chaining is also called \"flow\" programming. Rather than making intermediate variables, just leverage the fact that most operations return a new object and work on that.\n", "\n", "The chain should read like a recipe of ordered steps.\n", "\n", "(BTW, this is actually what we did above.)\n", "\n", "
\n", " Hint: Leverage .pipe if you can't find a way to chain 😉🐼💪\n", "
\n", " \n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 0, "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [], "source": [ "# a glorious function\n", "def tweak_gss(gss):\n", " return (gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " .rename(columns={'YEAR': 'year', 'ID': 'year_id', 'AGE':'age', \n", " 'HRS1': 'hours_worked', 'OCC': 'occupation', \n", " 'MAJOR1': 'college_major', 'SEX':'sex', \n", " 'RACE':'race', 'BORN':'born_in_US',\n", " 'INCOME':'income_1970', 'INCOME06': 'income_2006',\n", " 'HONEST':'honesty_rankint',\n", " 'TICKET':'traffic_ticket'}) \n", " )\n", "\n", "tweak_gss(gss)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# compare chain to this mess\n", "year = gss.YEAR\n", "year_int = year.astype('uint16')\n", "id = gss.ID\n", "id_int = id.astype('uint16')\n", "occ = gss.OCC\n", "occ_int = occ.astype('uint16')\n", "\n", "gss2 = gss.copy()\n", "gss2['year'] = year_int\n", "gss2['year_id'] = id_int\n", "gss2['occupation'] = occ_int\n", "\n", "# more of this" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female White Yes \n", "64810 2018 2345 75.0 36.0 9999 No answer Female White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64809 No answer Refused No answer No answer \n", "64810 25000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearyear_idagehours_workedoccupationcollege_majorsexraceborn_in_USincome_1970income_2006honesty_rankinttraffic_ticket
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " year year_id age hours_worked occupation college_major sex \\\n", "0 1972 1 23.0 NaN 205 No answer Female \n", "1 1972 2 70.0 NaN 441 No answer Male \n", "2 1972 3 48.0 NaN 270 No answer Female \n", "3 1972 4 27.0 NaN 1 No answer Female \n", "4 1972 5 61.0 NaN 385 No answer Female \n", "... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female \n", "64810 2018 2345 75.0 36.0 9999 No answer Female \n", "64811 2018 2346 67.0 NaN 9999 No answer Female \n", "64812 2018 2347 72.0 NaN 9999 No answer Male \n", "64813 2018 2348 79.0 NaN 9999 No answer Female \n", "\n", " race born_in_US income_1970 income_2006 honesty_rankint traffic_ticket \n", "0 White No answer No answer Refused No answer No answer \n", "1 White No answer No answer Refused No answer No answer \n", "2 White No answer No answer Refused No answer No answer \n", "3 White No answer No answer Refused No answer No answer \n", "4 White No answer No answer Refused No answer No answer \n", "... ... ... ... ... ... ... \n", "64809 White Yes No answer Refused No answer No answer \n", "64810 White Yes 25000 Refused No answer No answer \n", "64811 White Yes 25000 Refused No answer No answer \n", "64812 White Yes 25000 Refused No answer No answer \n", "64813 White Yes No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# easy to debug\n", "# - assign to var (df3)\n", "# - comment out\n", "# - pipe to display\n", "\n", "\n", "from IPython.display import display\n", "\n", "def get_var(df, var_name):\n", " globals()[var_name] = df\n", " return df\n", "\n", "# a glorious function\n", "def tweak_gss(gss):\n", " return (gss\n", " # create var \n", " .pipe(get_var, 'df3')\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " .pipe(lambda df: display(df) or df) \n", " .rename(columns={'YEAR': 'year', 'ID': 'year_id', 'AGE':'age', \n", " 'HRS1': 'hours_worked', 'OCC': 'occupation', \n", " 'MAJOR1': 'college_major', 'SEX':'sex', \n", " 'RACE':'race', 'BORN':'born_in_US',\n", " 'INCOME':'income_1970', 'INCOME06': 'income_2006',\n", " 'HONEST':'honesty_rankint',\n", " 'TICKET':'traffic_ticket'}) \n", " )\n", "\n", "tweak_gss(gss)\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YEARIDAGEHRS1OCCMAJOR1SEXRACEBORNINCOMEINCOME06HONESTTICKET
01972123.0NaN205No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
11972270.0NaN441No answerMaleWhiteNo answerNo answerRefusedNo answerNo answer
21972348.0NaN270No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
31972427.0NaN1No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
41972561.0NaN385No answerFemaleWhiteNo answerNo answerRefusedNo answerNo answer
..........................................
648092018234437.036.09999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
648102018234575.036.09999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648112018234667.0NaN9999No answerFemaleWhiteYes25000RefusedNo answerNo answer
648122018234772.0NaN9999No answerMaleWhiteYes25000RefusedNo answerNo answer
648132018234879.0NaN9999No answerFemaleWhiteYesNo answerRefusedNo answerNo answer
\n", "

64814 rows × 13 columns

\n", "
" ], "text/plain": [ " YEAR ID AGE HRS1 OCC MAJOR1 SEX RACE BORN \\\n", "0 1972 1 23.0 NaN 205 No answer Female White No answer \n", "1 1972 2 70.0 NaN 441 No answer Male White No answer \n", "2 1972 3 48.0 NaN 270 No answer Female White No answer \n", "3 1972 4 27.0 NaN 1 No answer Female White No answer \n", "4 1972 5 61.0 NaN 385 No answer Female White No answer \n", "... ... ... ... ... ... ... ... ... ... \n", "64809 2018 2344 37.0 36.0 9999 No answer Female White Yes \n", "64810 2018 2345 75.0 36.0 9999 No answer Female White Yes \n", "64811 2018 2346 67.0 NaN 9999 No answer Female White Yes \n", "64812 2018 2347 72.0 NaN 9999 No answer Male White Yes \n", "64813 2018 2348 79.0 NaN 9999 No answer Female White Yes \n", "\n", " INCOME INCOME06 HONEST TICKET \n", "0 No answer Refused No answer No answer \n", "1 No answer Refused No answer No answer \n", "2 No answer Refused No answer No answer \n", "3 No answer Refused No answer No answer \n", "4 No answer Refused No answer No answer \n", "... ... ... ... ... \n", "64809 No answer Refused No answer No answer \n", "64810 25000 Refused No answer No answer \n", "64811 25000 Refused No answer No answer \n", "64812 25000 Refused No answer No answer \n", "64813 No answer Refused No answer No answer \n", "\n", "[64814 rows x 13 columns]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# inspect intermediate data frame\n", "df3" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Don't Mutate\n", "\n", "> \"you are missing the point, inplace rarely actually does something inplace, you are thinking that you are saving memory but you are not.\"\n", ">\n", "> **jreback** - Pandas core dev\n", "\n", "\n", "\n", "https://github.com/pandas-dev/pandas/issues/16529#issuecomment-676518136\n", "\n", "* In general, no performance benefits\n", "* Prohibits chaining\n", "* ``SettingWithCopyWarning`` fun\n" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "pd.read_csv??" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Don't Apply (if you can)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "lines_to_next_cell": 0, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [], "source": [ "# a glorious function\n", "def tweak_gss(gss):\n", " return (gss\n", " .astype({'YEAR': 'uint16', 'ID': 'uint16', 'OCC': 'uint16' ,\n", " 'HRS1': 'float16', 'AGE': 'float16',\n", " 'MAJOR1': 'category',\n", " **{col: 'category' for col in ['SEX', 'RACE', 'BORN', \n", " 'INCOME', 'INCOME06', 'HONEST','TICKET']}})\n", " .rename(columns={'YEAR': 'year', 'ID': 'year_id', 'AGE':'age', \n", " 'HRS1': 'hours_worked', 'OCC': 'occupation', \n", " 'MAJOR1': 'college_major', 'SEX':'sex', \n", " 'RACE':'race', 'BORN':'born_in_US',\n", " 'INCOME':'income_1970', 'INCOME06': 'income_2006',\n", " 'HONEST':'honesty_rankint',\n", " 'TICKET':'traffic_ticket'}) \n", " )\n", "\n", "gss2 = tweak_gss(gss)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "0 276.0\n", "1 840.0\n", "2 576.0\n", "3 324.0\n", "4 732.0\n", " ... \n", "64809 444.0\n", "64810 900.0\n", "64811 804.0\n", "64812 864.0\n", "64813 948.0\n", "Name: age, Length: 64814, dtype: float64" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# convert age to months\n", "def to_months(val):\n", " return val * 12\n", "\n", "gss2.age.apply(to_months)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 276.0\n", "1 840.0\n", "2 576.0\n", "3 324.0\n", "4 732.0\n", " ... \n", "64809 444.0\n", "64810 900.0\n", "64811 804.0\n", "64812 864.0\n", "64813 948.0\n", "Name: age, Length: 64814, dtype: float16" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this gives the sames results\n", "gss2.age * 12" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%%timeit\n", "gss2.age.apply(to_months)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%%timeit\n", "gss2.age * 12" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# ~14x slower!\n", "13_100 / 882" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "No answer 61191\n", "Business administration 542\n", "Education 340\n", "Engineering 197\n", "Nursing 186\n", "Health 127\n", "Psychology 127\n", "Accounting/bookkeeping 119\n", "English 100\n", "Computer science 99\n", "Biology 97\n", "Communications/speech 82\n", "Political science/international relations 71\n", "Law 68\n", "Other 66\n", "Economics 62\n", "History 62\n", "Criminology/Criminal Justice 60\n", "Medicine 57\n", "Social work 55\n", "Name: MAJOR1, dtype: int64" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gss.MAJOR1.value_counts()[:20]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "def is_science(val):\n", " return val in {'Engineering', 'Computer science', 'Biology'}" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9.83 ms ± 650 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ "%%timeit\n", "gss.MAJOR1.apply(is_science)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.22 ms ± 251 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ "%%timeit\n", "gss.MAJOR1.isin({'Engineering', 'Computer science', 'Biology'})" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "956 µs ± 38.1 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n" ] } ], "source": [ "%%timeit\n", "# compare with categorical\n", "gss2.college_major.isin({'Engineering', 'Computer science', 'Biology'})" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Master Aggregation\n", "\n", "Let's compare age by sex by year...🤔" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":1: FutureWarning: The default value of numeric_only in DataFrameGroupBy.mean is deprecated. In a future version, numeric_only will default to False. Either specify numeric_only or select only columns which should be valid for the function.\n", " (gss2\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
year_idagehours_workedoccupation
year
1972807.00000044.950871NaN1444.870428
1973752.50000044.18199939.8825041424.382314
1974742.50000044.59133939.8286091296.756065
1975879.77852344.30774338.9672781342.724161
1976878.93929345.28667139.6599731403.899266
1977765.50000044.66316640.5313571184.355556
1978766.50000044.00983440.8116951261.514360
1980734.50000044.97464041.0036511237.329019
19821143.10591444.85907739.5195311136.556452
1983800.00000044.29648240.4127351067.824265
1984737.00000044.00477240.5296821035.302783
1985767.50000045.71119741.164474952.962842
1986735.50000045.43062241.8215561100.905442
19871013.62946744.92363041.017731975.948323
1988741.00000045.37440941.364044999.544227
1989769.00000045.44357341.3020941002.324658
1990686.50000045.95699740.905548930.317055
1991759.00000045.62615640.2887889999.000000
1993803.50000046.04872141.8181809999.000000
19941496.50000045.96918941.6584219999.000000
19961452.50000044.77708842.3534899999.000000
19981416.50000045.55693141.8098079999.000000
20001409.00000046.02242741.8965919999.000000
20021383.00000046.28280641.7767499999.000000
20041406.50000045.96468042.2626199999.000000
20062255.50000047.14158642.0763059999.000000
20081012.00000047.70839742.0033269999.000000
20101022.50000047.96717541.3634769999.000000
2012987.50000048.19350141.3845489999.000000
20141271.21710049.01265341.9060639999.000000
20161434.00000049.15575840.9143379999.000000
20181174.50000048.97137841.2816819999.000000
\n", "
" ], "text/plain": [ " year_id age hours_worked occupation\n", "year \n", "1972 807.000000 44.950871 NaN 1444.870428\n", "1973 752.500000 44.181999 39.882504 1424.382314\n", "1974 742.500000 44.591339 39.828609 1296.756065\n", "1975 879.778523 44.307743 38.967278 1342.724161\n", "1976 878.939293 45.286671 39.659973 1403.899266\n", "1977 765.500000 44.663166 40.531357 1184.355556\n", "1978 766.500000 44.009834 40.811695 1261.514360\n", "1980 734.500000 44.974640 41.003651 1237.329019\n", "1982 1143.105914 44.859077 39.519531 1136.556452\n", "1983 800.000000 44.296482 40.412735 1067.824265\n", "1984 737.000000 44.004772 40.529682 1035.302783\n", "1985 767.500000 45.711197 41.164474 952.962842\n", "1986 735.500000 45.430622 41.821556 1100.905442\n", "1987 1013.629467 44.923630 41.017731 975.948323\n", "1988 741.000000 45.374409 41.364044 999.544227\n", "1989 769.000000 45.443573 41.302094 1002.324658\n", "1990 686.500000 45.956997 40.905548 930.317055\n", "1991 759.000000 45.626156 40.288788 9999.000000\n", "1993 803.500000 46.048721 41.818180 9999.000000\n", "1994 1496.500000 45.969189 41.658421 9999.000000\n", "1996 1452.500000 44.777088 42.353489 9999.000000\n", "1998 1416.500000 45.556931 41.809807 9999.000000\n", "2000 1409.000000 46.022427 41.896591 9999.000000\n", "2002 1383.000000 46.282806 41.776749 9999.000000\n", "2004 1406.500000 45.964680 42.262619 9999.000000\n", "2006 2255.500000 47.141586 42.076305 9999.000000\n", "2008 1012.000000 47.708397 42.003326 9999.000000\n", "2010 1022.500000 47.967175 41.363476 9999.000000\n", "2012 987.500000 48.193501 41.384548 9999.000000\n", "2014 1271.217100 49.012653 41.906063 9999.000000\n", "2016 1434.000000 49.155758 40.914337 9999.000000\n", "2018 1174.500000 48.971378 41.281681 9999.000000" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss2\n", " .groupby('year')\n", " .mean()\n", ")" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
year_idagehours_workedoccupation
year
1972807.00000044.950871NaN1444.870428
1973752.50000044.18199939.8825041424.382314
1974742.50000044.59133939.8286091296.756065
1975879.77852344.30774338.9672781342.724161
1976878.93929345.28667139.6599731403.899266
1977765.50000044.66316640.5313571184.355556
1978766.50000044.00983440.8116951261.514360
1980734.50000044.97464041.0036511237.329019
19821143.10591444.85907739.5195311136.556452
1983800.00000044.29648240.4127351067.824265
1984737.00000044.00477240.5296821035.302783
1985767.50000045.71119741.164474952.962842
1986735.50000045.43062241.8215561100.905442
19871013.62946744.92363041.017731975.948323
1988741.00000045.37440941.364044999.544227
1989769.00000045.44357341.3020941002.324658
1990686.50000045.95699740.905548930.317055
1991759.00000045.62615640.2887889999.000000
1993803.50000046.04872141.8181809999.000000
19941496.50000045.96918941.6584219999.000000
19961452.50000044.77708842.3534899999.000000
19981416.50000045.55693141.8098079999.000000
20001409.00000046.02242741.8965919999.000000
20021383.00000046.28280641.7767499999.000000
20041406.50000045.96468042.2626199999.000000
20062255.50000047.14158642.0763059999.000000
20081012.00000047.70839742.0033269999.000000
20101022.50000047.96717541.3634769999.000000
2012987.50000048.19350141.3845489999.000000
20141271.21710049.01265341.9060639999.000000
20161434.00000049.15575840.9143379999.000000
20181174.50000048.97137841.2816819999.000000
\n", "
" ], "text/plain": [ " year_id age hours_worked occupation\n", "year \n", "1972 807.000000 44.950871 NaN 1444.870428\n", "1973 752.500000 44.181999 39.882504 1424.382314\n", "1974 742.500000 44.591339 39.828609 1296.756065\n", "1975 879.778523 44.307743 38.967278 1342.724161\n", "1976 878.939293 45.286671 39.659973 1403.899266\n", "1977 765.500000 44.663166 40.531357 1184.355556\n", "1978 766.500000 44.009834 40.811695 1261.514360\n", "1980 734.500000 44.974640 41.003651 1237.329019\n", "1982 1143.105914 44.859077 39.519531 1136.556452\n", "1983 800.000000 44.296482 40.412735 1067.824265\n", "1984 737.000000 44.004772 40.529682 1035.302783\n", "1985 767.500000 45.711197 41.164474 952.962842\n", "1986 735.500000 45.430622 41.821556 1100.905442\n", "1987 1013.629467 44.923630 41.017731 975.948323\n", "1988 741.000000 45.374409 41.364044 999.544227\n", "1989 769.000000 45.443573 41.302094 1002.324658\n", "1990 686.500000 45.956997 40.905548 930.317055\n", "1991 759.000000 45.626156 40.288788 9999.000000\n", "1993 803.500000 46.048721 41.818180 9999.000000\n", "1994 1496.500000 45.969189 41.658421 9999.000000\n", "1996 1452.500000 44.777088 42.353489 9999.000000\n", "1998 1416.500000 45.556931 41.809807 9999.000000\n", "2000 1409.000000 46.022427 41.896591 9999.000000\n", "2002 1383.000000 46.282806 41.776749 9999.000000\n", "2004 1406.500000 45.964680 42.262619 9999.000000\n", "2006 2255.500000 47.141586 42.076305 9999.000000\n", "2008 1012.000000 47.708397 42.003326 9999.000000\n", "2010 1022.500000 47.967175 41.363476 9999.000000\n", "2012 987.500000 48.193501 41.384548 9999.000000\n", "2014 1271.217100 49.012653 41.906063 9999.000000\n", "2016 1434.000000 49.155758 40.914337 9999.000000\n", "2018 1174.500000 48.971378 41.281681 9999.000000" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss2\n", " .groupby('year')\n", " .mean(numeric_only=True)\n", ")" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
agehours_worked
year
197244.950871NaN
197344.18199939.882504
197444.59133939.828609
197544.30774338.967278
197645.28667139.659973
197744.66316640.531357
197844.00983440.811695
198044.97464041.003651
198244.85907739.519531
198344.29648240.412735
198444.00477240.529682
198545.71119741.164474
198645.43062241.821556
198744.92363041.017731
198845.37440941.364044
198945.44357341.302094
199045.95699740.905548
199145.62615640.288788
199346.04872141.818180
199445.96918941.658421
199644.77708842.353489
199845.55693141.809807
200046.02242741.896591
200246.28280641.776749
200445.96468042.262619
200647.14158642.076305
200847.70839742.003326
201047.96717541.363476
201248.19350141.384548
201449.01265341.906063
201649.15575840.914337
201848.97137841.281681
\n", "
" ], "text/plain": [ " age hours_worked\n", "year \n", "1972 44.950871 NaN\n", "1973 44.181999 39.882504\n", "1974 44.591339 39.828609\n", "1975 44.307743 38.967278\n", "1976 45.286671 39.659973\n", "1977 44.663166 40.531357\n", "1978 44.009834 40.811695\n", "1980 44.974640 41.003651\n", "1982 44.859077 39.519531\n", "1983 44.296482 40.412735\n", "1984 44.004772 40.529682\n", "1985 45.711197 41.164474\n", "1986 45.430622 41.821556\n", "1987 44.923630 41.017731\n", "1988 45.374409 41.364044\n", "1989 45.443573 41.302094\n", "1990 45.956997 40.905548\n", "1991 45.626156 40.288788\n", "1993 46.048721 41.818180\n", "1994 45.969189 41.658421\n", "1996 44.777088 42.353489\n", "1998 45.556931 41.809807\n", "2000 46.022427 41.896591\n", "2002 46.282806 41.776749\n", "2004 45.964680 42.262619\n", "2006 47.141586 42.076305\n", "2008 47.708397 42.003326\n", "2010 47.967175 41.363476\n", "2012 48.193501 41.384548\n", "2014 49.012653 41.906063\n", "2016 49.155758 40.914337\n", "2018 48.971378 41.281681" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss2\n", " .groupby('year')\n", " [['age', 'hours_worked']]\n", " .mean()\n", ")" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": true, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgQAAAEjCAYAAABNQxmFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArNUlEQVR4nO3dfXCU9b338c9vk2wedhEI0AApEnxAwMJRUVGpHhT1YLWKraLWIiiKAjLtlFtH5qi34PToeKZ4eqgPHIs8eEQRbx9QK7UVZJQEjzcIiIgPKCBBMKBRsptkN9nf/cd1JXc2GywJm702u+/XTGci3yv0O+1I3vyuvXaNtdYKAABkNZ/XCwAAAO8RBAAAgCAAAAAEAQAAEEEAAABEEAAAABEEAABABAEAABBBAAAARBAAAAARBAAAQAQBAAAQQQAAAEQQAAAAEQQAAEAEAQAAEEEAAABEEAAAkBasrZOt+5tsdKsn//25nvy3AgAASZK1tVL4GdnQn6XYAecXe70kkzcspXsQBAAAeMDGwlJtUwgcjB/GvpZEEAAAkLGcEFjmhsA3rab5UmCK5D8v5XsRBAAApICNhaTw07KhhZL9ttW0QCq6ViZwi0xOH0/2IwgAAOhENlbTIgSqW00LpKJfyQRulsnp7cV6zQgCAAA6gRMCT8mGFiWGgCmUiq6XKZoik9PLk/1aIwgAAEiiHw6BIicEAlNkfMWe7Hc4BAEAAElgY4ek8FLZ0GLJfhc/NAE3BG5KuxBoQhAAAHAUbOx7KbxENrREst/HD01AKpooE7hRxtfTmwWPEEEAAEAH2Nj3zmlAeIlkD8UPTUAqukEmMDntQ6AJQQAAQDvYWLVzGhBeItma+KEJSkWTZAKTZHw9PNmvowgCAACOgBMCi6TwUsmG4oemW4sQ6O7NgkeJIAAA4AfY2LduCDzVRggcIxOY5MSA7xhvFkwSggAAgDbY2DeyoSel8NNthEB3mcBk53UCvm6e7JdsBAEAAC04IbDQDYFw/ND0kAnc6Dw54At6s2AnIQgAAJBkGw/KhptCoDZ+mMEh0IQgAABkNdt4wPnkwdpnDhMCU5w3FcrQEGjS4SD49ttvtWjRIq1Zs0Z79uxRNBpVcXGxTj31VE2cOFGnn356MvcEACCpbGOVEwLhZyTVxQ9NT5nAzc4HD/kCnuyXasZaa9v7TTt37tSvf/1rVVVVyefzqbS0VMFgULt371YoFJIxRnfddZcmT57cCSsDANBxtvHrFiFQHz/0FTshUHhd1oRAkw4FwaRJk7R+/XqVlZXpkUce0QknnCBJqq+v13/8x3/oySefVG5url577TWVlZUle2cAANrNNu6XDT0hhZcrMQR6tQiBIk/285qvvd9QU1Ojd999V5J0xx13NMeAJOXn5+vOO+/UwIED1dDQoHfeeSd5mwIA0AG2cZ9i398vWzXWeVOhljHg6y3TbbZMn9XuJxBmZwxIHXgNQSQSUdOhwrHHHpswN8ZowIAB2rVrlxoaGo5+QwAAOsA27pMNLZDCz0mKxg99fWQCt0hF18iYQk/2SzftDoLi4mL17dtX+/bt0/vvv6/BgwfHzcPhsLZv3y5JGj58eHK2BADgCNnGr2RrFki1K5QYAj+SCUyViibImAJP9ktXHXrKYNasWbrzzjv10EMPyefzacyYMQoGg/r000/1hz/8QQcOHNDll1+ukSNHJntfAADaZBv3uiHwvBJDoKRFCOR7sl+669CLCiVpzZo1euyxx7R58+a4X+/Tp49mzJiha6+9VsaYpCwJAMDh2MZK2ZrHpdoXlBgCfd0QuJoQ+Ac6/D4Eu3bt0sGDB+Xz+dSvX7/mxw6rqqr04osvauTIkQm3EwAASBbbsEc21BQCrV6z5usnE7xVKrxKxvg92a+r6dAJwZw5c7Rs2TINHz5c//7v/65BgwZJkurq6vSf//mfWrhwoYLBoFauXKnS0tKkLw0AyF62YbcbAi8pMQT6ywRvkwp/QQi0U7uDYPv27Ro/frxyc3P117/+tc0f+JMnT1ZFRYWuueYazZ07N2nLAgCylxMCj7kh0Bg/9JW6JwKEQEe1+5bBhg0bZK3VwIEDD/u3/9GjR6uiokJbt2496gUBANnNNuxyQ+BlJYRAzo9lArdJheMJgaPU7iAIhUL/+CJXJBJp728PAIAkyTbslK15VKp7RW2HwHSp8AoZk+fJfpmm3UHQ9HqBXbt2qbKyss1TgnXr1sVdCwDAkbINn7sh8KqkWPww51iZwDSp8HJCIMna/dbFo0ePVq9evRSNRvWb3/xGX3zxRfOsrq5ODz30kCoqKiRJV1xxRfI2BQBkNNuwQ7Hq/yV74GdS3UrFxUDOQJnuD8r0XiVT9EtioBN06CmD8vJyzZgxQ+FwWD6fT/3791cgENDu3btVW+t8lvT111+ve++9N+kLAwAyi234zD0ReE1Sqx9JOWUywelSwWUypsNPyuMIdPiNib788kstXrxY5eXl2rt3rxobG9WjRw+NGDFCEyZM0JgxY5K8KgAgk9jop7KhR6S615UYAoPcELiUEEiRDgcBAAAdYaOfuCGwSokhcJxMcIZU8DMZk+PJftmK7AIApISNfixb84hUvypxmHO8GwKXEAIeIQgAAJ3KRj9yQ+CNxGHuic7jgwXjCAGPEQQAgE5ho9vcEPhb4jB3sHMikP8vMqbdD7yhExAEAICkstEPZWv+JNW/mTjMPUkmeLuUfxEhkGYIAgBAUtjoVjcEVicOc4e4JwKEQLoiCAAAR8VGP3BDYE3iMHeoeyIwlhBIcwQBAKBDbGSzbOhPUv3axGHuMJngTCn/AhljUr8c2o0gAAC0i41skq2ZL0XeThzm/sQ9ETifEOhiCAIAwBGxkfedWwNthUDecJnA7VL+GEKgiyIIAAA/yEY2uCGwLnGYN8K5NeA/jxDo4ggCAECbbOQ9NwQqEod5pzi3BvznEgIZgiAAAMRxQmC+FFmfOMw7zQ2B0YRAhiEIAACSJFv/rvPUQOTdxGHeae6tgXMIgQxFEABAFrPWSpF3nROB6HuJF+Sd7p4InE0IZDiCAACykBMCFc5rBKL/N/GCvDPdEBhFCGQJggAAsogTAuXuicDGxAv8o2QCt8vkj0r9cvAUQQAAWcAJgXVuCLyfeIH/LJngTBn/GalfDmmBIACADOaEwNvurYFNiRf4z5EJ3i7jPz3luyG9EAQAkIGcEFjrhsCWxAv8o90QGJn65ZCWCAIAyCDWWqn+LefxwegHiRf4z3VD4NTUL4e0RhAAQAZwQmCNcyLQsDXxAv+57msETkn5bugaCAIA6MKcEHhTtuYRqeHDxAvy/9l5asD/T6lfDl0KQQAAXZATAn93TwQ+Srwg/3yZ4AyZvBGpXw5dEkEAAF2ItTGp/m/uicD2xAvyL3BDYHjql0OXRhAAQBfghMAbbgh8nHhB/ljnxYJ5J6d+OWQEggAA0pgTAn91Q+CTxAvyL3JPBIalfjlkFIIAANKQtY1S3SrZ0KNSw6eJF+Rf7IbA0NQvh4xEEABAGnFC4HXnRKBxR+IF+eNkgtNl8oakfjlkNIIAANKAEwJ/cUPg81ZTIxWMkwlMl8k7yZP9kPmOOgjWrl2rFStWaNOmTaqurlb37t01YMAAjRo1SjNnzlRuLs0BAIdjbYNU95pszaNS4xetpkYquEQmMEMm70RP9kP2MNZa25FvbGho0OzZs7Vy5UpJUr9+/dS7d29VV1dr3759ikaj2rhxowKBQFIXBoBM4ITAK7I1j0mNO1tNjVRwqXNrIPcEL9ZDFurwX9/vu+8+rVy5UsOHD9fcuXM1bNj/f4VrbW2tysvL5ff7k7IkAGQKJwRWuiGwq9XU54bANEIAKdehE4L169dr0qRJKi0t1cqVKxUMBjtjNwDIGNZGpdqVsqHHpMbdraY+qeAy90TgOE/2Azp0QrBo0SJJ0k033UQMAMAPcELgJTcE9rSa+qSCy90TgUGe7Ac0afcJQX19vUaOHKloNKq//OUvstZq+fLl2rFjh/x+v4YOHaqrrrpKpaWlnbUzAKQ9ayNuCDzeRgjktAiBMi/WAxK0+4Rg+/btikajkqQNGzZo7ty5zf8sSWvWrNGf//xnPfDAA7rsssuStykAdAFOCLwgW7NAilW2muZIheNlArfJ5A70ZD/gcHzt/Yaqqqrmr5teTLhixQp98MEHeuONN3TJJZcoEonorrvu0rZt25K6LACkK2sjsuFnZKsulv3+3lYxkCsVXiXT+6/ydX+AGEBaancQhEKh5q8LCgr0xBNPaMSIEfL7/Ro4cKDmzZunoUOHKhqN6vHHH0/qsgCQbpwQWCZbdZHs9/9biu1tMc2VCq92Q+DfZHKP9WxP4B9pdxDk5+c3f33llVeqe/fu8b+hz6fJkydLkt555x3FYrGj2xAA0pC19bKh/5atulD2+/uk2FctprlS4TUyvd+Qr/vvZXIHeLQlcOTa/RqClgFw/PHHt3nNccc5j82EQiFVV1eruLi4g+sBQHqxtl4KL5cNPSHF9rea5kmFv5QJ3iqTwwur0bW0OwiafthLUl5eXpvXtDxF4IQAQCawtk4KPycb+i8p9nWraZ5zayA4VSanvyf7AUer3UFQUlKi0tJSVVZW6ssvv2zzmqZfz8/PV48ePY5qQQDwkhMCz7onAlWtpnlS0dUygVtlcvp5sh+QLO1+DYEkXXLJJZKkV155RQ0NDQnz559/XpJ0xhln8OFGALoka2tlQ4tkq8bKHvq3VjHgl4p+LdPnTfmOuY8YQEboUBBMmTJF3bp10549ezR37lzV19dLkqy1Wrp0qdasWSNjjKZOnZrUZQGgs9lYWDa00A2BB9oIgRvcELhXJqevZ3sCydbhTzssLy/XtGnTVFdXp27duqmsrEz79u1TVVWVjDG64447NGXKlGTvCwCdwsbCUu0y2dCfpdg3rab5UtG1MoGbZXJKPNkP6GwdDgJJ2rlzpxYsWKDy8nIdPHhQwWBQp556qm688UadeeaZydwTADqFjYWk8DLZ8MI2QqCgRQj8yJP9gFQ5qiAAgK7Kxmqk8NOyoScl+22raYFU9Cs3BHp7sh+QarziD0BWcULgKdnQIslWxw9NoVT4K5nAFEIAWYcgAJAVfjgEiqSi62WKbpLJ6eXJfoDXCAIAGc3GDknhpbKhxZL9Ln5oAk4IBG6S8fGOqshuBAGAjGRj37cIge/jhyYgFU2UCUwmBAAXQQAgo9jY904EhJdI9lD80ASc9xEITJbx9fRkPyBdEQQAMoKNfdciBGrihyYoFU2SCUyS8fXwYj0g7REEALo0G6t2Q2BpGyHQrUUIdG/z+wE4CAIAXZKNfes8MRB+SrKh+KE5RiYwyYkB3zHeLAh0MQQBgC7Fxr5xQ+C/DxMCNzqvE/B182ZBoIsiCAB0CU4ILJTCT0s2HD803d0QmEgIAB1EEABIa7bxoPM5A+FlbYRAjxYhEPRmQSBDEAQA0pJtPOCcCNQuk2xt/ND0kAlMcd5UiBAAkoIgAJBWbGOV8xHE4Wck1cUPTc8WIRDwZD8gUxEEANKCbfy6RQjUxw99xTKBm6XC6wgBoJMQBAA8ZRv3uyHwrBJDoFeLECjyZD8gWxAEADxhG/fJhp6QwsslReKHvt5OCBRdJ2MKPdkPyDYEAYCUckJggRReocQQ6CMTuEUquoYQAFKMIACQErbxK9maBVLtCknR+KHvRzKBqVLRBBlT4Ml+QLYjCAB0Ktu41w2B53X4ELhGxuR7sh8AB0EAoFPYxkrZmsel2heUGAIlMoFbpaKrCQEgTRAEAJLKNuyRDTWFQEP80NdPJnirVHiVjPF7sh+AthEEAJLCNux2Q+AlJYZAf5ngbVLhLwgBIE0RBACOihMCj7kh0Bg/9JW6JwKEAJDuCAIAHWIbdrkh8LISQiDnxzKB26TC8YQA0EUQBADaxTbslK15VKp7RW2HwHSp8AoZk+fJfgA6hiAAcERsw+duCLwqKRY/zDlWJjBNKrycEAC6KIIAwA+yDTtkax47TAgMlAlOkwoulzH8cQJ0ZfwbDKBNtuEz90TgNUk2fphTJhOcLhVcRggAGSIp/yavXbtWU6dOlSSVlpZq9erVyfhtAXjARj+VDT0i1b2uxBAY5IbApYQAkGGO+t/oUCik++67LwmrAPCSjX7ihsAqJYbAcTLBGVLBz2RMjif7AehcRx0EDz/8sPbu3auxY8fqzTffTMZOAFLIRj+WrXlEql+VOMw53g2BSwgBIMMdVRBs2rRJTz/9tMaOHasLL7yQIAC6EBv9yA2BNxKHuSc6jw8WjCMEgCzR4SCIRqO65557VFBQoHvvvVfl5eXJ3AtAJ7HRbbI1f5Lq/544zB3snAjk/4uM8aV+OQCe6XAQLFiwQJ988olmz56tvn37JnMnAJ3ARj90Q6CNk7zck2SCt0v5FxECQJbqUBDs2LFDCxYs0Mknn6yJEycmeycASWSjW90QaOPpn9whbghcSAgAWa7dQWCt1d13362GhgbNmTNHOTncXwTSkY1ucUPgrcRh7lA3BMYSAgAkdSAIli1bpo0bN2rixIkaPnx4Z+wE4CjYyGbZ0J+k+rWJw9yT3RC4QMaY1C8HIG21Kwj279+vefPmqaSkRL/97W87aSUAHWEjm2Rr5kuRtxOHuT9xQ+B8QgBAm9oVBPfff79qamr0wAMPKBgMdtZOANrBRjY6twYi7yQO84bLBG6X8scQAgB+kLHW2n98meOCCy5QZWWlevfunTCrq6tTTU2NfD6fiouLJUnz58/XaaedlrxtATSzkQ1uCKxLHOb9k3Mi4D+PEABwRDr0lMGBAwcOO4vFYs3zaDTasa0AHJaNvOeGQEXiMO8UmeBMyf9TQgBAu7TrhOCHvPDCC5o9ezYfbgR0Ehv5HzcE1icO805zTwRGEwIAOoSPKwPSnK1/13lqIPJu4jDvNPdE4BxCAMBRIQiANGStlSLrnROB6HuJF+Sd7p4InE0IAEgKggBII04IVDiPD0Y3JF6Qd6YbAqMIAQBJlbTXEADoOCcEyt0Q2Jh4gX+UTOB2mfxRqV8OQFbghADwkBMC77i3Bt5PvMB/lkxwpoz/jNQvByCrEASAB5wQeNs9EdiceIH/bJng7YQAgJQhCIAUckJgrXsisCXxAv9oNwRGpn45AFmNIABSwFor1b/lPD4Y/SDxAv+5bgicmvrlAEAEAdCpnBBY45wINGxNvMB/rvsagVNSvhsAtEQQAJ3ACYE3ZWsekRo+TLwg/5+dpwb8/5T65QCgDQQBkETWxqT6v7sh8FHiBfnnywRnyOSNSP1yAPADCAIgCZwQ+Jt7a+DjxAvyL3BDYHjqlwOAI0AQAEfBCYE33BOBtkJgrPNiwbyTU78cALQDQQB0gLUxqW6VbOhRqeGTxAvyL3RDYFjqlwOADiAIgHawttENgUekhs8SL8i/2L01MDT1ywHAUSAIgCPghMDrzq2Bxh2JF+SPkwlOl8kbkvrlACAJCALgBzgh8JpszaNS4+etpkYqGCcTmC6Td5In+wFAshAEQBusbWgRAl+0mhqp4BKZwAyZvBM92Q8Ako0gAFpwQuAV2ZrHpMadraZGKviZ8xqB3BO8WA8AOg1BAKgpBFa6IbCr1dQnFVwqE5xGCADIWAQBspq1Ual2pWzoMalxd6upTyq4zHmxYO5xnuwHAKlCECArOSHwkhsCe1pNfVLB5e6JwCBP9gOAVCMIkFWsjbgh8HgbIZDTIgTKvFgPADxDECArOCHwgmzNAilW2WqaIxWOlwncJpM70JP9AMBrBAEymhMC/8cNgb2tprktQuBYT/YDgHRBECAjOSHwvBsCX7Wa5kqFV7ohMMCT/QAg3RAEyCjW1kvhFbKh/5Ji+1pN86TCX8gEbpXJ/bEn+wFAuiIIkBGcEHjODYH9raZ5UuFVMsGpMjmlnuwHAOmOIECXZm1dixD4utU0Tyq82g2B/p7sBwBdBUGALskJgWdlQ09IsapW0zypaIJMYKpMTj9P9gOAroYgQJdiba0bAn9uIwT8LUKgryf7AUBXRRCgS7CxsFT7jGxooRQ70GqaLxVdIxO4RSanxJP9AKCrIwiQ1pwQWOaGwMFW03yp6DqZwM0yOT/yZD8AyBTtDgJrrd5//32tXr1aGzZs0Oeff66amhp169ZNw4YN0/jx4/Xzn/9cxpjO2BdZwsZCUniZbHihFPum1bRAKrrWPRHo48l+AJBpjLXWtucbKioqNHny5OZ/HjBggI455hhVVlaqurpakjRmzBjNnz9ffr8/mbsiC9hYjRR+Wjb0pGS/bTUtkIp+5Z4I9PZkPwDIVB06Ifjxj3+sSZMm6dJLL1WvXr2aZy+99JLuuecevfXWW/rjH/+oO+64I6nLInM5IfDfbghUxw9NoVR0vUzRFJmcXm1+PwDg6LT7hKCmpkb5+fnKy8trc/7444/r4YcfVo8ePVRRUSGfz5eURZGZnBB4Sja0qI0QKHJCIDBFxlfsyX4AkC3a/dM6GAweNgYk6bzzzpMkVVdX65tvWt/7BRw2dki25hHZqvNlax6OjwETkAJTZfqslq/bHcQAAKRA0p8yqKura/66oKAg2b89ujgb+14KL5UNLZbs9/FDE5CKJsoEbpTx9fRkPwDIVkkPgtdee02SNGTIEAWDwWT/9uiibOx7JwLCSyR7KH5oAlLRDTKByYQAAHgkqUGwdetWPfvss5KkqVOnJvO3RhdlY9+1CIGa+KEJSkWTZAKTZHw9vFgPAOBKWhAcOHBAM2fOVENDgy666CJdeumlyfqt0QXZWLUbAkvbCIFuLUKguyf7AQDitfspg7YcOnRIN9xwg7Zt26aTTz5ZS5cu5XZBlrKxb50nBsJPSTYUPzTHyAQmOTHgO8abBQEAbTrqE4JQKKSbb75Z27Zt04knnqiFCxcSA1nIxr5x3kMg/HQbIdBdJjDZeZ2Ar5sn+wEAfthRBUFtba1uvfVWbdq0SWVlZVq0aJF69uRFYdnECYGFbgiE44emh0zgRufJAR+RCADprMNBUF9fr2nTpum9995TaWmpFi9erD59eF/5bGEbDzqfMxBeRggAQAboUBBEo1HNnDlTFRUVKikp0ZIlS9SvX79k74Y0ZBsPyIb+LNU+I9na+KHpIROY4ry7ICEAAF1Ku4OgsbFRs2bN0tq1a9WnTx8tWbJEAwYM6IzdkEZsY5UTAuFnJNXFD01PmcDNzgcP+QKe7AcAODrtfsrg1Vdf1axZsyRJpaWlKikpOey199xzj4YNG3Z0G8JTtvHrFiFQHz/0FTshUHgdIQAAXVy7TwgikUjz15WVlaqsrDzstYcOHTrsDOnNNu6XDT0hhZcrMQR6tQiBIk/2AwAkV1LehwCZwzbuaxECkfihr7dM4Bap6FoZU+jJfgCAzpH0zzJA1+SEwAIpvEKJIdDHDYFrCAEAyFAEQZazjV/J1iyQaldIisYPfT+SCUyViibIGD65EgAyGUGQpWzjXjcEnldiCJS0CIF8T/YDAKQWQZBlbGOlbM3jUu0LajsEbpWKriYEACDLEARZwjbskQ01hUBD/NDXTyZ4q1R4lYzxe7IfAMBbBEGGsw273RB4SYkh0F8meJtU+AtCAACyHEGQoZwQeMwNgcb4oa/UPREgBAAADoIgw9iGXW4IvKyEEMj5sUzgNqlwPCEAAIhDEGQI27BTtuZRqe4VtR0C06XCK2RMnif7AQDSG0HQxdmGz90QeFVSLH6Yc6xMYJpUeDkhAAD4QQRBF2UbdsjWPHaYEBgoE5wmFVwuY/i/GADwj/HToouxDZ+5JwKvSWr1MRQ5ZTLB6VLBZYQAAKBd+KnRRdjop7KhR6S615UYAoPcELiUEAAAdAg/PdKcjX7ihsAqJYbAcTLBGVLBz2RMjif7AQAyA0GQpmz0Y9maR6T6VYnDnOPdELiEEAAAJAVBkGZs9CM3BN5IHOaeIBOYIRWMIwQAAElFEKQJG93mhsDfEoe5g50Tgfx/kTG+1C8HAMh4BIHHbPRD2Zo/SfVvJg5zT5IJ3i7lX0QIAAA6FUHgERvd6obA6sRh7hD3RIAQAACkBkGQYja6xQ2BtxKHuUPdE4GxhAAAIKUIghSxkc2yoT9J9WsTh7nDZIIzpfwLZIxJ/XIAgKxHEHQyG9kkWzNfirydOMz9iXsicD4hAADwFEHQSWxko3NrIPJO4jBvuEzgdil/DCEAAEgLBEGS2cgGNwTWJQ7zRji3BvznEQIAgLRCECSJjbznhkBF4jDvFOfWgP9cQgAAkJYIgqNkI//jhsD6xGHeqe6JwGhCAACQ1giCDrL17zpPDUTeTRzmneaGwDmEAACgSyAI2sFaK0XWOycC0fcSL8g73b01cDYhAADoUgiCI+CEQIXz+GB0Q+IFeWe4JwKjCAEAQJd0VEGwfv16LVq0SJs3b1Y4HFb//v01btw4TZ06VUVFRcna0TNOCJS7IbAx8QL/KJnA7TL5o1K/HAAASWSstbYj3/jUU0/p97//vay16tu3r4qLi/XZZ58pEono+OOP17Jly9SjR48kr5saTgi8494aeD/xAv9ZMsGZMv4zUr8cAACdoENBsHXrVl199dWy1mrOnDmaMGGCjDHav3+/pk2bpg8//FAXX3yx5s+f3xk7dxonBN52TwQ2J17gP1smeDshAADIOB36BJ1HH31UsVhMV1xxha655prm++YlJSWaN2+efD6f3njjDW3fvj2py3YWa61s/Vuy31wt++3NiTHgHy1T/Ix8xUuIAQBARmp3EIRCIb39tvO+/BMmTEiYl5WV6ayzzpIkrVq16ijX61zWWtm6NbIHfyn77VQpuiX+Av+5MsXL5SteJOMf6c2SAACkQLtfVPjRRx8pEonI7/drxIgRbV4zcuRIlZeXa/PmNo7d04StXyd76A9Sw9bEof9c9zUCp6R8LwAAvNDuIPjiiy8kSf3791deXl6b1xx77LFx16YbG9kk++0USbH4Qf4/O08N+P/Jk70AAPBKu4Pgu+++kyR17979sNc0zZquTTuxKsXFQP4YmcAMQgAAkLXaHQT19fWSdNjTAUny+/1x16ad/PNlgr+VjX0tU/hLmbzhXm8EAICn2h0E+fn5kqRoNHrYayKRSNy16caYXCk4XbynIAAAjnY/ZXAktwOO5LYCAABIH+0OgrKyMknS3r17D3tKsHv37rhrAQBAemt3EAwdOlR5eXmKRCLasmVLm9ds2OB8ANApp5xyVMsBAIDUaHcQBINB/fSnP5UkPffccwnznTt3av369ZKkcePGHeV6AAAgFTr01sXTp0+XMUYvv/yyli9frqaPQ/j666/1u9/9TrFYTBdeeKGGDBmS1GUBAEDn6PCnHS5evFgPPvigrLXq16+fevbs2fxph4MGDdKyZctUXFyc7H0BAEAn6HAQSFJFRYWefPJJbdmyReFwWP3799e4ceM0depUBQKBZO4JAAA60VEFAQAAyAwdeg0BAADILAQBAAAgCAAAAEEAAABEEAAAABEEAABABAEAABBBAAAARBAAAAARBAAAQAQBAAAQQQAAAEQQAAAAEQQAAEAEAQAAEEEAAABEEAAAABEEAABAUq7XC6Ta+vXrtWjRIm3evFnhcFj9+/fXuHHjNHXqVBUVFXm9Xkax1ur999/X6tWrtWHDBn3++eeqqalRt27dNGzYMI0fP14///nPZYzxetWssHbtWk2dOlWSVFpaqtWrV3u8UWZbu3atVqxYoU2bNqm6ulrdu3fXgAEDNGrUKM2cOVO5uVn3x2+n+vbbb7Vo0SKtWbNGe/bsUTQaVXFxsU499VRNnDhRp59+utcrpj1jrbVeL5EqTz31lH7/+9/LWqu+ffuquLhYn332mSKRiI4//ngtW7ZMPXr08HrNjFFRUaHJkyc3//OAAQN0zDHHqLKyUtXV1ZKkMWPGaP78+fL7/d4smSVCoZAuu+wy7d27VxJB0JkaGho0e/ZsrVy5UpLUr18/9e7dW9XV1dq3b5+i0ag2btyoQCDg8aaZY+fOnfr1r3+tqqoq+Xw+lZaWKhgMavfu3QqFQjLG6K677or78whtsFnigw8+sEOGDLEnnXSSffbZZ20sFrPWWrtv3z575ZVX2sGDB9vbb7/d4y0zy7p16+wFF1xglyxZYg8cOBA3e/HFF+1PfvITO3jwYPvQQw95tGH2uP/+++3gwYPttGnT7ODBg+3555/v9UoZ61//9V/t4MGD7S9/+Uv74Ycfxs3C4bD9+9//biORiEfbZaYbbrjBDh482F588cX2008/bf71uro6++CDD9rBgwfbYcOG2S+++MK7JbuArHkNwaOPPqpYLKYrrrhC11xzTfMxdUlJiebNmyefz6c33nhD27dv93jTzDFixAitWrVKN9xwg3r16hU3Gz9+vGbMmCFJev755xWLxbxYMSts2rRJTz/9tMaOHasLL7zQ63Uy2vr167VixQqVlpZq8eLFGjZsWNy8sLBQY8eOVV5enkcbZp6amhq9++67kqQ77rhDJ5xwQvMsPz9fd955pwYOHKiGhga98847Xq3ZJWRFEIRCIb399tuSpAkTJiTMy8rKdNZZZ0mSVq1aldLdMlkwGPzBP/jOO+88SVJ1dbW++eabVK2VVaLRqO655x4VFBTo3nvv9XqdjLdo0SJJ0k033aRgMOjxNtkhEonIune+jz322IS5MUYDBgyQ5NzOweFlxataPvroI0UiEfn9fo0YMaLNa0aOHKny8nJt3rw5xdtlr7q6uuavCwoKPNwkcy1YsECffPKJZs+erb59+3q9Tkarr6/XunXrJElnn322PvvsMy1fvlw7duyQ3+/X0KFDddVVV6m0tNTjTTNLcXGx+vbtq3379un999/X4MGD4+bhcLj55Hf48OFerNhlZMUJwRdffCFJ6t+//2H/xtpUlk3XovO99tprkqQhQ4bwt6lOsGPHDi1YsEAnn3yyJk6c6PU6GW/79u2KRqOSpA0bNmj8+PFaunSp1q1bpzVr1ujRRx/VuHHj9Oqrr3q8aeaZNWuWjDF66KGHtGLFClVVVam2tlZbtmzRtGnTdODAAV1++eUaOXKk16umtaw4Ifjuu+8kSd27dz/sNU2zpmvRubZu3apnn31WkpofhUPyWGt19913q6GhQXPmzFFOTo7XK2W8qqqq5q/nzp2rYcOG6e6779aQIUP01Vdf6eGHH9brr7+uu+66S8cdd1zC6wvQcZdffrm6deumxx57THfffXfcrE+fPrrvvvt07bXXerRd15EVJwT19fWS9IP3s5see2u6Fp3nwIEDmjlzphoaGnTRRRfp0ksv9XqljLNs2TJt3LhR119/PcekKRIKhZq/Ligo0BNPPKERI0bI7/dr4MCBmjdvnoYOHapoNKrHH3/cw00z065du3Tw4MHmxw5POukkFRYWqqqqSi+++KI+/fRTr1dMe1kRBPn5+ZLUfJzXlkgkEnctOsehQ4d0yy23aO/evTr55JP14IMPer1Sxtm/f7/mzZunkpIS/fa3v/V6nazR8s+OK6+8MuFE0ufzNT8H/8477/BkTRLNmTNHDzzwgHr27Km//OUvWr16tVauXKn169drypQp2rx5s6677jpVVlZ6vWpay4ogOJLbAUdyWwFHJxQK6eabb9a2bdt04oknauHChbx2oBPcf//9qqmp0d13383/vinU8s+O448/vs1rjjvuOEnOvwtNb86Fo7N9+3Y988wzysvL0x//+EcNGjSoeVZQUKA777xTZ599tmpqarRgwQIPN01/WfEagrKyMknS3r17FY1G27x1sHv37rhrkVy1tbW69dZbtWnTJpWVlWnRokXq2bOn12tlpG3btkly/tY0Z86cuFnTkx1fffWVRo8eLUmaP3++TjvttNQumYGafthLh7892fIUgROC5NiwYYOstRo4cOBhn+AYPXq0KioqtHXr1hRv17VkRRAMHTpUeXl5ikQi2rJlS5uvNN2wYYMk6ZRTTknxdpmvvr5e06ZN03vvvdf8hi19+vTxeq2Md+DAgcPOYrFY8/yHbqXhyJWUlKi0tFSVlZX68ssv27ym6dfz8/N5m/QkafnajX+k6dYw2pYVtwyCwaB++tOfSpKee+65hPnOnTu1fv16SdK4ceNSulumi0ajmjlzpioqKlRSUqIlS5aoX79+Xq+V0VavXq2PP/64zf888MADkpzPMmj6tVGjRnm8cea45JJLJEmvvPJKm2+C8/zzz0uSzjjjDD7cKEmabhHs2rXrsK8RaHp/iJa3E5AoK4JAkqZPny5jjF5++WUtX768+Z2tvv76a/3ud79TLBbThRdeqCFDhni8aeZobGzUrFmztHbtWvXp00dLlixpfscwIBNNmTJF3bp10549ezR37tzmp5astVq6dKnWrFkjYwyP2ibR6NGj1atXL0WjUf3mN7+Jey+Zuro6PfTQQ6qoqJAkXXHFFV6t2SVk1acdLl68WA8++KCsterXr5969uzZ/GmHgwYN0rJly1RcXOz1mhnj1Vdf1axZsyQ5fyMtKSk57LX33HMPz2WnwAsvvKDZs2fzaYedqLy8XNOmTVNdXZ26deumsrIy7du3T1VVVTLG6I477tCUKVO8XjOjlJeXa8aMGQqHw/L5fOrfv78CgYB2796t2tpaSdL111/P23f/A1l1ZjV58mSddNJJevLJJ7VlyxYdPHhQ/fv317hx4zR16lQ+jjTJWt6vq6ys/MFHfg4dOpSKlYBOd8455+jll1/WggULVF5eru3btysYDOqCCy7QjTfeqDPPPNPrFTPOOeeco5UrV2rx4sUqLy/X3r17tX//fvXo0UPnnHOOJkyYoDFjxni9ZtrLqhMCAADQtqx5DQEAADg8ggAAABAEAACAIAAAACIIAACACAIAACCCAAAAiCAAAAAiCAAAgAgCAAAgggAAAIggAAAAIggAAIAIAgAAIOn/ARR2vfFzF6IIAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "plt.style.use('pandas1book') \n", "sns.set_context('talk')\n", "plt.plot(range(10))" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAFACAYAAABwa0xrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABiQ0lEQVR4nO3dd3iTVfvA8e9Jmu6WskG2YAtUUEHGK7gYCi5ABFRE0VdREFDAATKUHyrgABXfV3HgAFEEQRy8LlBERDayRabMltFBd8b5/ZEmTehO0qZp7891eV15zjPOnceE3jnPGUprrRFCCCGEqOAM/g5ACCGEEKIkJGkRQgghRECQpEUIIYQQAUGSFiGEEEIEBElahBBCCBEQJGkRQgghRECQpEUIIYQQAUGSFiGEEEIEBElahBBCCBEQJGkRQgghRECQpEUIIYQQAUGSFiGEEEIEBElahBBCCBEQJGkRQgghRECQpEUIIYQQAUGSFiGEEEIEBElahBBCCBEQgvwdgBBCCBFIdPp8dNoboNN9c8GgZqiYOaigi31zvUpMaa21v4OoyLTWyC0SouJSSqGU8ncYoorQtnPoxKsBs28vbGyGqvkFyhDp2+tWMtLScgGtNefPnyc1NZWMjAysVqu/QxJCFMNoNBIeHk50dDRRUVGSxIiyk7kMnycsANZD6JSnIeZN+fwWQVpaXNhsNk6dOkVKSoq/QxFCeCgmJoa6detiMEiXPeFbWmv0mV5gPWQvCL8PFT7Yu2tmLob0d53bKnIcKvJhr65ZmUnS4iIpKYlTp04BUKNGDaKioggJCZGsV4gKTGtNdnY258+f59y5cwDUq1eP6tWr+zkyUdnonI3oc3lJiqq1EhXUyLtrais6aRjkrMktMaCqv48K6eLVdSsreTzkIikpCYA6depQs2ZNP0cjhCip8PBwwsPDCQoKIjExkaSkJElahM/pjM/zNoK7eJ2wAChlhJhX0WdvB+sxwIZOHgM1l6KCGnp9/cpG2k9zOX6tAURHR/s5GiGEJxzf3ezsbOlAL3xK21Ig6zvntgob4LNrK0MMKuZNICS3smR08ii0zvJZHZWFJC25XP+BMxqNfoxECOEp1++uJC3CpzK/Auw/bFHVIbSHTy+vTK1R1Z7PK7DsQqc+J5/jC0jSIoQQQhRBa43OdHk0FNYPpYJ9Xo8K6wPh9+QVZC6FzM98Xk8gk6RFCCGEKIp5O1j+cm6qcN89GrqQihoPpnbObZ36PDpna5nVF2gkaRFCCCGK4NbKYroSFdS8zOpSKhgV8wYYaueWmO39W6yny6zOQCJJixBCCFEIbUuDrG+d2yp8YJnXqYx1UDGv4xzga0tEJz+O1mUwqV2AkaRFCCGEKEzWCtAZ9tcqCkJvLJdqVfCVqKgJeQXmjejzL5dL3RWZJC1CCCFEIdw74N6GUmHlV3n4PRB6W952xofozG/Kr/4KSJIWIYQQogDavNfeCTeXCiv7R0OulFKoatMgqGVeTCnP2OOqoiRpEUIIIQrg3gG3DcrUqtxjUCrMPvGcqpZbkoVOHmmf7K4KkqRFCCGEuIDWWbkTytmVdyuLKxXUGBXzKpC7Dp71H3TKE2ht81tM/iJJixBCCHGhrO9Bp9pfq3AIvdmv4aiQa1CRj+UVZK+G9P/4LyA/8cmCiatXr2bYsGEANGjQgFWrVhV63KeffsrOnTtJSkoiODiYZs2a0bNnT+677z7Cw8N9EY4oR/v27eOHH35g7dq1HD9+nHPnzhEREUF8fDyDBg3ixhsL7mmfkJDA66+/zq+//kpKSgr169fnpptuYvjw4Tz77LMsW7aM6dOnc/vtt+c79/jx48ybN4/ffvuNU6dOYTQaad68OX379mXQoEEEBck6oEII77gtjhh6E8oQ6b9gHCIeAfMOyF4JgE6bA0GXokKv93Ng5cfrf93T09N57rnnij1u5syZzJs3D4CoqChiY2NJSUlh9+7d7Nq1i+XLl7NgwQJq1arlbUiiHL344ousW7eOyMhIateuTe3atTl9+jRr165l7dq1PPDAAzz99NNu5xw6dIjBgwdz9uxZTCYTl1xyCVlZWbz11lusW7eOhg0LX9n0559/ZuzYsWRkZBAaGkrjxo1JT09nx44dbN++nVWrVvHWW28RHOz7KbaFEFWDthwE80bntgob5Mdo8ihlgGovoc/2B+thAHTKkxD0BSqoiX+DKydeJy2zZ8/mxIkTdO/enZUrVxZ4zKZNm5wJy6hRo3j44YcxmUwA7N69m+HDh3Po0CFefvllZs6c6W1IZU7rTAjESX6UyefD9e68806efvppWrVy76C2a9cuxo4dy7x58+jZsyft2tmnpdZa88QTT3D27FmuuOIKXn/9derWrQvYPwsPP/wwu3btKrCuAwcOMGbMGHJycnjyySe59957ncnJ3r17GTNmDL/99hv/+c9/GDNmjE/fpxCi6tAZi/M2guLA1NZ/wVxAGaIg5k30uYH2+WN0Kjp5JNRYhDJU/qcVXiUt27Zt45NPPqF79+706NGj0KTFUd6qVStGjhzptq9169aMHTuWp556il9++cWbcMqFLfUFyJgPBGIHKAM6fAiG6Ik+u2KvXr0KLI+Pj+fZZ5/l/vvvZ/ny5c6k5Y8//mDnzp2EhYXxxhtvUKdOHec5rVu3ZsaMGTzwwAMFXnPOnDlkZmby6KOP8uCDD7rta9myJbNmzaJfv34sWLCAESNGEBIS4qN3KYSoKrTOgaxlzm0VNgCllB8jyk+ZYiH6RXTK4/YCy1/o1ElQ7dUKF6uveZy0mM1mJk+eTGhoKFOmTOH3338v9NjsbPty3o0bNy5wf5Mm9mYti8XiaTjlJ2MBgZmwANjs8fswaQE4ffo03377LTt27ODs2bPO/985OTkA7Nmzx3nsmjVrALjmmmvcEhaHLl260KBBA44fP+5WnpOTw88//wzAoEEFN9W2atWKBg0acOzYMXbt2uVMlIQQosSyV4HtXO5GCIT18Ws4hVFhN6HN2yHD/hSDrG/AdBlE3OffwMqYx0nL3Llz2bdvHxMmTKBevXpFHut4dLBz505ycnLy9TfYvHkzAG3bVpwmuEKF3xPALS1G92XPfWDFihVMnDiRjIyMQo9JTk52vj58+DBgbxkpTFxcXL6k5ciRI2RlZWEwGHj88ccLPTcpKQmAU6dOFR+8EEJcwL0D7o0oQ7XCD/YzFfUE2rILctYDoM/PAFNrVHAHP0dWdjxKWg4cOMDcuXOJj49nyJAhxR7fp08fPv74Y/bt28fo0aMZPXo0F198MSkpKfz444+88cYbREZG8sQTT3gSTrkyRE9ER42VPi3A0aNHeeqppzCbzQwePJi+ffvStGlTIiIiMBqNHD16lB49eri1oDmSm4iIiEKvW9C+1FT70EObzcaWLVuKjS0rK6u0b0cIUcVpyzHIWevcLo/FEb2hVBBUew19th/YTgFW9PlXUDUX+Tu0MlPqpEVrzaRJk7BYLEydOhWj0VjsOcHBwSxcuJDZs2ezfPly+vXr57a/d+/ezkQmECgVBuW5/kQF9b///Q+z2cyNN97IlClT8u13tHq4cgxrT09PL/S6Be1zJDJhYWFs27bNw4iFEKJwOnMJoO0bxmZgqvgtFspYE2LmoM8NBnLAEO3vkMpUqSeXW7hwIVu2bGHw4MG0adOmxOedPXuWxMREsrOziYyMpFWrVs7HSmvWrOHrr7/GZgvERy5V17FjxwDo0KHgL/aff/6Zr6xp06YA/PXXX4Vet6B9TZo0wWQykZmZydGjRz2IVgghCqe1BTKXOLdVeMXrgFsYFXwZquYyVPQ0VLVZ/g6nTJUqaUlISGDWrFnUrVu3yH4FFzp48CADBw7kp59+4sknn2TDhg18+eWXrF69ms8//5zq1avz3//+lxdffLG08Qs/Cg0NBewdcS+UnZ3NggUL8pVfffXVAPz666+cOXMm3/5169bl688C9haW6667DoAPPvjAm7CFECK/7DVgS8zdMEFovyIPr2iU6RJU+CD7kOhKrFRJy7Rp00hLS2PSpElERpZ8dsDZs2eTkpLCgAEDuO+++9weKV122WXMmDEDgE8//VQ6UAYQRwvLwoUL2b49byXUs2fPMnr0aE6ePJnvnM6dO9OmTRsyMjIYPXo0iYmJzn179uxh/Pjxzjl8LvT4448THh7OJ598wksvvURKivuCYZmZmfz4449MmjTJF29PCFGFuC2OGNLd/thFVDhKa61LenC3bt04fvx4gbPWZmVlkZaWhsFgoEaNGoB9Xo127drxr3/9i3PnzvHaa6/Ru3fvfOdqrWnXrh0ZGRm8/fbbXH99+U9JbLPZnI8l4uLiMBhkWabiWK1W7r33XjZt2oRSiiZNmhAeHs7ff/8NwJQpU5g8eXK+pR0KmhE3JyeH/fv3c9lll9GoUSO++eYbZs6cSd++fd3qXLt2LY8//jipqakEBQXRrFkzwsPDSUlJ4ejRo1it1iKXkhCVm3yPhSe0NQF9+jrACoCqPg8V0tWvMYmCefSNPnPmTL7/0tLSAPs/Go4ys9k+wqaoTpcXcszxISo+o9HIu+++ywMPPED9+vU5fvw4iYmJXH/99SxatIirrrqqwPOaNWvG0qVL6d+/PzExMezfv5/s7GyGDRvGRx995PzcFNSa16VLF/73v//xyCOPEBsby4kTJ9i1axcpKSm0a9eOcePG8f7775fp+xZCVDKZS3EkLBgaQHDB/3YJ/ytVS0tRli5dyoQJEwr8lXvbbbfx119/MXDgQKZNm5bv3E2bNjF48GAAvvrqK+Li4nwRUqnIL7SK45ZbbuHvv/9m+fLlRc7nIsSF5HssSktrG/pMD7DaBxaoyMdQkY/6OSpRmHL5RvfpY59RcPHixXz88cdYrVbnvj///JPx48cD9mnc/ZGwiIrjzz//5O+//yYmJoYWLVr4OxwhRGWXs86ZsIABwvr7NRxRNK8XTCyJe++9lw0bNvDLL7/wwgsv8Prrr9O4cWPOnTvn7Hhbs2ZNXnrppfIIR/jZ4cOH+fXXX+nbty/R0XlzCmzevNk5weDAgQMJCiqXj6cQogpz74B7LcpY9Azvwr/K5a+CyWTi7bffZvny5Xz11Vfs2bOHffv2ERwcTMuWLbnuuuu47777nB14ReV2/vx5XnjhBWbMmEHTpk2JjIwkISHBmcBeccUVPPqoNM8KIcqWtp2DrJ+c2yqsYs+AK3zYpyXQybPw8pOSksK8efNYu3YtJ06cIDU1lZCQEFq0aMFNN93EXXfdlW99KiFKQr7HojR0+vvo8zPtG4Y6qNq/2KfGFxWWJC255B87IQKffI9FSWmt0Wd6gfWQvSDiEQxRY/0blCiWfKOFEEJUPeZNeQkLoMLu8GMwoqQkaRFCCFHl6IzFeRvBV6GCGvsvGFFikrQIIYSoUrQtFbK+c25LB9zAIUmLEEKIqiXzKyDL/lpVh9Aefg1HlJwkLUIIIaoMrbX73Cxh/VBKRisGCklahBBCVB2WHWDZ69xU4dIBN5BI0iKEEKLK0BkurSym9qggWS4kkEjSIoQQokrQtnTI+ta5rcKlA26gkaRFCCFE1ZC1AnS6/bWKgtBe/o1HlJrMVyyEEMLntO085GwCLP4OxUlnLMjbCLsNpcL8F4zwiCQtwmPdunXj+PHjfPzxx3Tq1Mnf4QgfGD9+PMuWLWPkyJGMGjXKr7EMGTKEDRs2yOcrAGlbEvrsQLAe8XcohZK5WQKTPB4SQgjhM1pb0cljK3TCgqkNytTK31EID0hLixBCCJ/Raa9Bztq8AuPFUJHmQTHURkWN93cUwkOStAghhPAJnfUDpM/NKwjphYp5HaWU/4ISlYo8HhJCCOE1bTmATnk6ryCoBarai5KwCJ+SpEX4xJEjRxg3bhxdunShTZs29O7dm/feew+bzVbg8Xv27GHcuHFcc801XHrppXTq1IkHH3yQlStXFnj80qVLiYuLY/z4wpt1u3XrRlxcHMeOHXMrHz9+PHFxccyZM4ekpCSef/55unXrxqWXXsqIESOcx/3555889thjXH311Vx66aW0b9+enj17Mnr0aL799tsLqyuxrl27EhcXx5Ej7s/4c3JyuOyyy4iLi3OLw+HDDz8kLi6OCRMm5Nt39OhRpkyZQvfu3WnTpg0dOnRgyJAhLFu2rMB7fuzYMeLi4oiLiwPgxx9/ZMiQIXTs2JG4uDj27NlT7PtITEzk1ltvJS4ujtGjR5OTk+Pcl56ezty5c+nfvz/t27enbdu29OrVi1deeYXk5ORCr3n48GHGjh1L586dadu2LTfffDPvvvsuVqu12HhExaFtaeikR12GE0egYt5EGSL9G5iodOTxkPDanj17GDFiBBaLhebNmxMUFMTBgwd5+eWXOXHiBFOmTHE7/ssvv2TixIlYLBaioqKIi4sjMTGRNWvWsGbNGgYPHpzvHF84d+4c/fv35+TJk7Ro0cIZK8Avv/zCo48+isViISIigosvvhiAU6dO8f3333PkyBFuvvlmj+rt0KEDK1asYMOGDTRp0sRZvn37drKy7Iu2bdq0CZvNhsGQ9zti/fr1AHTs2NHter///juPPvooGRkZhIWFcckll5CSksKGDRvYsGEDP/30E6+//rrzvV3o3Xff5ZVXXqFGjRo0btyYU6dOFfsejhw5wgMPPMCxY8cYNGgQzz33nDPWI0eO8OCDD/LPP/8QFBTERRddRHBwMEeOHOHdd99lxYoVfPzxxzRs2NDtmtu3b2fo0KGkp6cTEhJCixYtSElJ4ZVXXmHbtm3F31hRIWit0SkTwHrQWaaqvYQKutiPUYnKSpIWD1htmdi02d9hlJpBmTAafD8vwSuvvELfvn2ZMGECERERAKxYsYKxY8eycOFChgwZQrNmzQD4+++/mTRpEhaLhfvvv5+xY8cSHGzvpOdIZj755BPi4+Pp37+/T+NctGgR8fHxzJ8/nwYNGgA4k4ZZs2ZhsVgYNmwYo0aNcsYEsH//fjZv3uxxvR07dmTFihX88ccfDBgwwFn+xx9/AFC3bl0SEhLYs2cP8fHxANhsNmedrknL2bNnGTNmDBkZGdxyyy1MnTqVyEj7r9k1a9bw2GOP8dNPP/Hf//6X0aNHFxjP66+/zpQpU7jrrrswGAzYbDYslsLn0ti9ezcPPvggZ8+e5ZFHHmHMmDHOfdnZ2QwfPpx//vmHPn368PTTT1OzZk3AniROnDiRVatW8eSTT/Lpp5+6nTd27FjS09O57rrreOmll6hWrRoAq1ev5rHHHisyJlGBpL8H2d/nbUcMR4X29F88olKTpKWU9pydzj+pnwAFP/ao2Aw0jh5Mq5r5Hzd4o2nTpkydOhWj0egsu+mmm/j6669ZtWoVq1evdiYt8+bNw2w2c8UVV+R71NO3b1/++usv5s2bx1tvveXzpMVoNDJnzhzq1avnLAsNDQXg0KFDAAwbNswtYQFo0aIFLVp4vj6JY46RDRs2uJWvX78epRTDhg1j2rRprF+/3pm07N27l5SUFBo2bOhMsAA+/fRTkpOTueiii5gxYwYmk8m57+qrr2bs2LFMmzaNjz76iH//+9/OJNLVwIEDGTx4sHPbYDDke8+uMY4YMYL09HQmTJjA0KFD3fZ/8cUXHDhwgI4dOzJjxgy3lqIaNWrw6quv0rt3b7Zs2cKWLVto164dYE9qjx49SmRkJK+88gpRUVHO86699lpGjBjBq6++WuR9Ff6ns9ei01z+PwVfjYosOFkWwhekT0spHU1dSGAmLAC23Ph964477nBLWBwuv/xywN7/wuHXX38F4N577y3wWvfff7/zHEci4StXXXWVW8Li6qKLLgLsf0x97eKLL6Z27dokJiY631NOTg5//vknLVu25IYbbgDyHge5vr7w0ZDj/t19991uCYvDgAEDiIqKIi0tja1btxYYT79+/UoU948//siDDz5IVlYWM2fOzJewAHz//ffOel0TFofw8HCuuuoqwD1pc7yPvn37uiUsDnfddVeB709UHNp6HJ08Bue/h8aGqJhXUCr/vwVC+Iq0tJRSo+i7A7alRWGkUfTdPr9u06ZNCyx3PCbIyMgA4Pz585w5cwaA2NjYAs+pU6cOMTExJCcnc/DgQWcLjS84+qkU5N///jeTJ09mypQpzJs3j65du9KuXTs6duxI7dq1va67Y8eOfPvtt6xfv55mzZqxdetWsrOz6dSpE3Xq1KFZs2Zs2rQJq9WK0Wh0Ji0XzgTrSHoKu38hISE0btyYXbt2cfDgQbp27ZrvmObNmxcb78qVK3nrrbcwmUy8+eabXHvttQUe99dffwHw/vvvuz3+cXXixAkAt74zBw8eLDKWqKgo6tSpw/Hjx4uNVZQ/rbPRSaNAJ+eWhOR2vK3uz7BEFSBJSym1qjmB2OqPS58WF2FhBV/T8ctbaw3YR5g4OBKagtSuXZvk5GS3430hPDy80H0DBw4kMjKSefPmsXPnTg4fPsyCBQswGAx06dKFCRMmlOiPfWE6derkTFruvPPOfElJx44dWbRoEbt27eLSSy919me5MGlx3JPi7p/rsRcq6j44HDt2DKvVSo0aNdw6D1/o/PnzgP1xVnEc/YcgL5Et6n3UqlVLkpYKSGuNTn0OLDudZara/6FMrf0Wk6g6JGnxgNEQhhFZaKu0XPtXnD17lurVC/5Vdvr06XzHO+Z6cCRABXH8IfTUTTfdxE033URSUhKbN29mw4YNrFixgjVr1rBv3z6+/vprZ2fR0nI85tm4cSNgf1RiNBrp0KEDAJ07d2bRokX88ccfGAwGUlNTadSoEfXr13e7TkREBKmpqZw9e7bQugq6f6V1zz33cOzYMb7++muGDBnC/PnzC2xRCw8PJzU1lcWLF9O2bdsSX9+ROBX1PhytcqKCyVwEmV/kbYcPRoWV7JGjEN6SPi2i3ERFRVGrVi0A9u3bV+AxiYmJznk9XB/nOFpzCvtDlpKSQlJSkk/irF69Oj169OCZZ55hxYoV1KlTh4SEBH7++WePr9msWTPq1KnD6dOn2bVrF9u2baNVq1bO/hyOpGb9+vXOvh8X9mdxXAcKv3/Z2dn8888/QNGPw4pjNBqZOXMmt956K4mJidx7770cPnw433GXXHIJYB8VVhqO2A4cOFDg/rS0NBITE0sXtChzOmcbOnVaXoGpHSrKtx37hSiKJC2iXF1zzTUAfPzxxwXu//DDDwFo3LixW38Wx6/8PXv2uE1q5rBwoe87GANER0c7Hwt5+0fUkYS8/fbbmM1mt0c/tWrVonnz5mzZsoW1a+3rthS0srHj/i1cuBCzOf8jyiVLlnD+/HkiIyOdI3U8ZTQaeemll7jttttISEjg3nvvzTdBXq9evQBYsGBBgfEU5uqrrwZg+fLlpKWl5dv/6aeflup6ouxp6xl08igg9/+LoVbuFP0VaF0hUelJ0iLK1QMPPIDJZGLr1q3MnDnTLQH56quvnMnM8OHD3c6LjY3loosu4uzZs7z00ktuM6auWLGCuXPnejzaJC0tjccee4x169blmxvkl19+YcuWLQBceumlHl3fwZGE/Pjjj27bDh07diQjI6PIpOWuu+4iJiaGEydOMGHCBLc/+GvXrmXWrFkADB06tER9V4pjMBiYOXOmM3EZMmSIW+IycOBAmjdvzu7duxk+fHi+pMZqtbJp0yYmTpxIQkKCs/ymm26iQYMGnD9/nieeeILU1FTnvl9//ZX//ve/MnqoAtHagk5+HGyO/4dB9oTFWNefYYkqSPq0iHJ1ySWX8PzzzzNx4kTmzZvHkiVLaNKkCYmJic4/anfffTe3336723kGg4Hx48fz2GOPMX/+fJYvX07jxo1JSEjg9OnTjBw5kmXLlnnUcdNms/Hdd9/x3XffERoaSuPGjQkJCSEhIcHZutKnTx/n0F1POVpatNYEBQVx5ZVXuu3v1KkTn376KVprGjduXODw7Jo1azJr1ixGjhzJ119/zU8//UTz5s1JSUlxDi3v3r07jzzyiFexunIkLkopli9f7uzj0qRJE0JDQ3nnnXd45JFHWLNmDTfccAONGjWiZs2aZGRk8M8//zg74LomoqGhocyaNYv777+fn3/+mauvvto5I+7Ro0fp0aMHqamp+ea2Ef6hz78M5rz/FypqPCq4gx8jElWVtLSIcte3b1+WLFnCLbfcQmhoKHv37iU7O5uuXbvyn//8h2effbbA82688Ubmzp1L+/btsVgsHDx4kIYNG/Laa68xatQoj+OJiIjg5Zdf5vbbb6dhw4YkJiayZ88ezGYzXbp04dVXX2XmzJkeX9+hadOm1K1r/2UaHx+fr6Nsp06dnB2OC+rP4tClSxeWL1/OwIEDqVGjBn/99RfJycl06NCB6dOn8+abb/q8lcJgMDBjxgz69u2b71FRw4YN+eKLL5gyZQodO3bk/Pnz7NixgxMnTnDxxRfzwAMPsHDhQrdJ8sA+j88XX3xB7969CQ0N5e+//yYkJIRx48bxxhtv+DR+4Tmd+Q1kfJBXEHobhA/xX0CiSlO6qOEYJbR69WqGDRsGQIMGDVi1alWhxyYlJfHRRx+xatUqjh07htaa2rVr06ZNG+68807naIryZrPZnHNOxMXFFThRlhCiYpPvsW9p81/ocwNBZ9oLglqiai5CKRk9KfzD68dD6enpPPfccyU6dtOmTYwcOZKkpCRCQkJo2rQpBoOBU6dO8c0331CnTh2/JS1CCCHyaFsqOnlkXsKiou0TyEnCIvzI66Rl9uzZnDhxgu7du7Ny5cpCjzt48CAPPfQQOTk5PPHEEwwZMsS57gvYhz76ejIxIYQQpae1DZ3yJFgdHasVKuZVVFBjv8YlhFdJy7Zt2/jkk0/o3r07PXr0KDJpmTJlChkZGUyePJl77rkn335vZhsVory8/fbbrF69usTHT548mdatZaZQEWDS/wvZefMSqcjRqJCCl3IQojx5nLSYzWYmT55MaGgoU6ZM4ffffy/02B07drBx40Zq1arFnXfe6WmVQvjd4cOHnUOgS8Ixzb0QgUJn/4JOm5NXENINIoYXfoIQ5cjjpGXu3Lns27ePCRMmFLpyroOjBcYxImLx4sWsWbOG1NRU6taty3XXXceNN94oneZEhTdjxgxmzJjh7zCEKBP2lZufAHLHZxiboKq9hFLyb7OoGDxKWg4cOMDcuXOJj49nyJDih77t3GlfWCs6OprBgwezbds2t/1ffvklHTp04L///S/R0dGehCSEEMJLOv190LkT/akwVMx/UAb5N1lUHKVOn7XWTJo0CYvFwtSpUzEajcWe41jA7YsvvmDnzp2MHz+eP/74g61btzJ79mxiYmLYuHEjkyZNKv07EEII4TWtsyDzK+e2inwSZYr1Y0RC5FfqpGXhwoVs2bKFwYMH06ZNmxKd41h912w28/DDD3P//fdTvXp1wsPDuemmm3j++ecB+P77751zLAghhChHWd+5tLJEgKzcLCqgUiUtCQkJzJo1i7p16/L444+X+LyQkBDn6/vuuy/f/p49e9KoUSMAfvvtt9KE5DOOmUgBt3VthBCBw/W76/qdFsXTGZ/nbYTejDJEFH6wEH5SqqRl2rRppKWlMWnSJCIjI0t8nqOfSu3atalWrVqBxziWqj927FhpQvIZpZQzuXJdvE0IETgc392QkBBJWkpBWw6AeZNzW4UP9GM0QhSuVB1xd+/eDcDUqVOZOnWq2z7HomgnT56kS5cuAMyZM4d27dpx8cUXs3nz5iLXQ3EkDDabrTQh+VT16tU5deoUiYmJWCwWoqKi5B8/ISo4rTXZ2dmcP3+ec+fOAfbvsig5nbEkbyMoDoJK9uhfiPLm0eihM2fOFLrPZrM595vNZgDatWvH4sWLSUhIICcnh+Dg4Hzn/fPPPwDFDp8uS9WqVSMrK4vk5GTOnTvn/AdQCBE4YmJiCm3RFflpnQNZy5zbKmyg/FATFVapkpaiFkJcunQpEyZMKHDBxG7duhESEkJ2djbLly9nwIABbvt37tzJ3r17AfjXv/5VmpB8ymAwUK9ePSIiIjh//jzp6enSv0WIAGA0GomIiCAqKoqoqCj5o1sa2SvB5viBFgJht/k1HCGK4vXaQyURExPD/fffz9tvv82sWbOIi4ujbdu2AJw4cYKJEycC0KlTJy6//PLyCKlQSimio6Od/XC01vhgIWwhRBlRSkmS4gX3Dri9UAZppRIVV7kkLQAjR45k9+7d/PrrrwwYMIDmzZsTEhLCvn37sFgsNGvWjJdffrm8wikx+QdRCFFZactRyFnr3JYOuKKiK7ekxWQyMXfuXD7//HOWLl3K/v37ncnKjTfeyP3331+qEUlCCCG8ozNdOuAam4HpSv8FI0QJKC3PPoQQosrR2oI+fR3YEgFQUU+jIv7t36CEKIasgiWEEFVR9q/OhAVMMgOuCAiStAghRBWkM1074PZAGWr4LxghSkiSFiGEqGK09RRk/+LcVmHSAVcEBklahBCiqslcCuTOPm5sCMH+mx9LiNKQpEUIIaoQrW1uo4ZU2B0oJX8KRGCQT6oQQlQlOevA6liY1gBht/s1HCFKQ5IWIYSoQtw64IZchzL6b703IUpLkhYhhKgitO0cZP3k3JYOuCLQSNIihBBVReYywGx/bagDIdf4NRwhSkuSFiGEqAK01u6LI4b1R6lyW8lFCJ+QpKWUtGU/ttQX0Nm/+jsUIYQoOfMmsB5ybqqwO/wYjBCekaSllHTyk5DxETppONqaWPwJQghRAeiMRXkbwV1QQY38F4wQHpKkpbR0eu4LM5i3+DUUIYQoCW1LgazvndsqXDrgisAkSUtpmVo5X2rzTj8GIoQQJZT5FZBtf62qQ0h3v4YjhKckaSklFRSft2He7b9AhBCiBLTW7nOzhPVDqWD/BSSEFyRpKS2Ta9KyE621/2IRQojimLeD5S/npgof4MdghPCOJC2lZWqd91ong+2k30IRQojiuLWymK5EBTX3XzBCeEmSllJShupgaJBXYN7lv2CEEKII2pYGWd86t6UDrgh0krR4wuURkZakRQhRUWWtAJ1hf62iILSXf+MRwkuStHhAufZrsUjSIoSomNw74N6GUqH+C0YIH5CkxRNunXF3SWdcIUSFo8177Z1wc8niiKIykKTFE0EunXFtZ8AmM+MKISoW9w64bVAuc0wJEagkafGAMtYCQ928ApmvRQhRgWidlTuhnJ20sojKQpIWT5kuzXttkZlxhRAVSNZ3oFPtr1U4hN7s33iE8BFJWjykXOZr0dLSIoSoQHTG4ryN0JtQhkj/BSOED0nS4qkgl5YWWYNICFFBaMtBMG90bquwQX6MRgjfkqTFU64z49oS0NYz/otFCCFyubWyBMWBqa3/ghHCxyRp8ZShDhhq5W3LfC1CCD/TOgeyljm3VdgAlFJ+jEgI3/JJ0rJ69Wri4uKIi4ujW7duJTrHZrMxaNAg53lLly71RSjlRil1wXwt0q9FCOFn2SvBdi53IwTC+vg1HCF8zeukJT09neeee67U5y1YsIBt27Z5W71/Bcl0/kKIikNnuMzNEnojylDNf8EIUQa8Tlpmz57NiRMn6N69e4nPOXHiBLNnzyY+Pp569ep5G4LfqAtmxhVCCH/RlqOQs9a5LYsjisrIq6Rl27ZtfPLJJ3Tv3p0ePXqU+LznnnuO7Oxs/u///g+j0ehNCP7lmrTYjqNtSf6LRQhRpenML/I2jM3A1MF/wQhRRjxOWsxmM5MnTyY0NJQpU6aU+Lyvv/6a1atXM3jwYC699NLiT6jIDPVBxeRtS78WIYQfaG2BzCXObRUuHXBF5RTk6Ylz585l3759TJgwocSPeJKSknjxxRepV68ejz32mKdVVxhKKbTpUsj5zV5g3gUhXfwblBAiYGjrGTD/Cdi8u5Blv8saaCYI7edtaEJUSB4lLQcOHGDu3LnEx8czZMiQEp83ffp0zp07x5tvvklkZCWZodHU2pm0aMsu5LeNEKIktOUQ+uwg0Mm+vXBId5Sxpm+vKUQFUerHQ1prJk2ahMViYerUqSXuk/Lbb7+xfPlyunXrRs+ePUsdaEWlXNcgks64QogS0LZ0dPKjvk9YkA64onIrdUvLwoUL2bJlC0OGDKFNmzYlOiczM5Nnn32W8PDwUvV/CQhBLjPjWv9B21JRhmj/xSOEqNC01ujUZ+yPdByC4sDrdlojKvQGCJZH1KLyKlXSkpCQwKxZs6hbty6PP/54ic977bXXOHbsGOPHj6d+/fqljbFiMzYCFZ23oqp5N4R09m9MQoiKK2MeZP0vbzviIQxRT/ovHiECSKkeD02bNo20tDQmTZpU4j4pu3fvZv78+bRu3Zp7773XoyArMvvMuC6tLTKdvxCiEDp7Hfr8y3kFwVehIsf4LyAhAozSWuuSHtytWzeOHz9OrVq18u3LysoiLS0Ng8FAjRo1AJgzZw6HDx9mwoQJhIeHEx4enu+8c+fOYbPZiIyMJDQ0lCuuuII333zTi7dU/mypMyHjfftG6K0YYl71b0BCiApHW0+iz/QFnTufk+EiVK2lKEMNv8YlRCDxaPTQmTOFr2hss9mc+81ms7M8IyODjIyMQs9LS0sjLS2NlJQUT0LyK2WKx5n5mXf6MxQhRAWkdTY6eWRewkIwqvocSViEKKVStbQUZenSpUyYMIEGDRqwatWqEp/naL2ZPn06t99+uy9CKXfacgh95sbcLYWqsxllqCRDuoUQXrOlTILMvHWBVPR0VHh/P0YkRGDyySrPVZ6xCaiI3A0Nlj1+DUcIUXHojM/dEhbC7pSERQgPSdLiA0oZ3Ic+y3T+QghA5/yJTp2aV2C6DBU9yX8BCRHgJGnxFZfFE7X0axGiytO2c+jk0UBu3z5DTVTMHJQK9mtcQgQyn/Vpqep05nJ0Su5cC0GXYKj1rX8DEkL4jdYWdNIDkPNHbokRVeMjVHBHv8YlRKCTlhZfcWlpwXIArTP9F4sQwq902iyXhAVU1FOSsAjhA5K0+IqxGaiw3A0bmPf6NRwhhH/orP9B+nt5BaE3Q/hQv8UjRGUiSYuPKGWEoFZ5BbJ4ohBVjrbsR6dMyCsIikVFv2CfOVsI4TVJWnzJZTp/LdP5C1GlaNt5dNKjoHMn0VRRqJg3UYb8M4ELITwjSYsPqaBL8zakpUWIKkNrGzrlKbAecpapaq+ggpr6LyghKiFJWnzJbeHE/Wid7b9YhBDlJ30uZK/M2454FBV6vf/iEaKSkqTFl4KaA445GCxg+cuf0QghyoHOXoNOey2vIORaVOQov8UjRGUmSYsPKWUCU8u8ApkZV4hKTVuOopPHgWPJVGMj+2MhJf+0ClEW5Jvla0EyM64QVYHWmbkrNyfnloSiYv6DMlTzZ1hCVGqStPiYcp1kTlpahKiUtNbolGfdFkdV1Z5Huba0CiF8TpIWX3ObGfcvtM7xXyxCiLKRuRCyvszbDr8PFXab38IRoqoI8ncAlU7QJYAJ+yJpZrD87Z7I+IlO/xid/g6E9cEQ9aS/wxEBTGd8ij4/G3RaMUcqCG6PinkDZYgpj9DKhc7Zgk59Ia/AdCUq6in/BSREFSILJpYB25l+4JhcLrgLqvp79hlz/URbE9GnrwWsAKjav6CMF/ktHhG4tC0JndgV58rFJRF8Dar6O5Wic6q2nkaf7Qe2RHuBoQ6q5jKUsbZ/AxOiigj8f0UqIBU+MG8jZ637cEh/yFyKI2EBwHKo0EOFKFLmckqVsADk/IpOm1Mm4ZQnrc3o5NF5CQsmeyuSJCxClBt5PFQWwu6E7HWQ/Z19O30u2tQGFXpDuYeitQ2dudi90Hq03OMQgU9rjc78PK8g/B5U+L2FH3/+Zcj+0b6R/p/c70C3Mo6y7OjzM8G82bmtop9BBbfzY0RCVD3S0lIGlFKoai+CsbmzTKc8jbYcKP9gcv7Il6RoSVqEJ8xbwbLfuanC70MFNS38v2oz7auf59IpT6Ath/0QuPd05leQ8XFeQWg/CLvbfwEJUUVJ0lJGlCESVf0/oCLsBTodnfQo2lZc50XfytfKAmA9Vq4xiMrB7bMU3BkV1KTI4/N/B9LQySPRtvQyjNL3tHkPOmVSXkFQa1S1qbJysxB+IElLGVJBF6OqvZRXYD2ITplAefV91rZzkPVD/h0WaWkRpaNtaZC1wrmtwgaU6DwV1AJVbUZegWUfOnViuX0HvKVtKfYJ5MiyF6gY+8rNKtSvcQlRVUnSUsZUaE+IeCSvIPt7SH+vfCp36zTp8r9aWlpEaWV9DTrT/lrFQCn6Z6nQGyHiIZdrrYCMD3wbXxnQ2mafot/5OFWhYmahghr6NS4hqjJJWsqBinwMgrs6t3Xaq+jstWVap9YaneHSaTK0j8vOZLTtfJnWLyoXt89SWB+UCinV+SpyDAT/K+96519GZ6/3VXhlQqfNgZxfndsqcgwqpGsRZwghypokLeVAKSMq5lUwNMgtsaGTx6Ctx8uuUvMWsOZ1/FWRIwCXPzTSGVeUkDbvypt3CFBhA4s4umBKBaFiZoPBMT+QFZ3yGNp6ykdR+pbOWgXp/8krCOkBEQ/7LyAhBCBJS7lRhuqo6m/iTBx0MjppFFpnl0l9br+MHZ0mjS7N2vKISJSQ22fJdAXKdIlH11GGGqjqc4Bge4HtHDp5VIVb6kJbDqNTXGaNNjZDVXtJOt4KUQFI0lKOlCkeVW1qXoFlJzr1OZ93StS285D1v7x6Hb+MXZ/FS0uLKAFty7D3Z8nlSSuLK2Vqg4p+Lq/A/Cc69XmvrulL2paeu3Jz7uNTFYGq/h+UIdK/gQkhAElayp0Kux3CXeZ3yPwCMhf5tpKsr3Ed7eDsNGls5DxES0uLKIms7/LWGFIRENrb60uq8DvsEzA6ZH6Gzlji9XW9pbVGp04Eyz5nmao2HRXUwo9RCSFcSdLiByrqGTBd4dzWqdPQOdt8dn33TpN9UcreHK9cHw/JsGdRAm4z4IbeijKE++S6KnoSmC7Lqyf1ObR5h0+u7bGMD92GdRPxECq0l9/CEULkJ0mLHygVjIp5Awy1ckvM9mf71jNeX1ubd4Jld15drusgubS0yOMhURxt/tveoTuX22fJS/bvwBww1MgtyUEnjbTPLeQHOns9+rzLnErB/7KPeBJCVCiStPiJMtZFxbyOc/knWwI6+XG0tnh1XfdOk+3cm7bdkpbjaG3zqi5RubnNgBvUGmW61KfXV8Z6qGqvA7kroNtO2kfVefkdKC1tPYVOeQznoqKG+qiY2SglS7MJUdFI0uJHKrgDKmp8XoF5g32ROQ9pW3rRnSZdHw+R47JarRDutM6GzC+d275sZXGlQjqholxG6uSsQ6fNLpO6CqJ1Djp5FDhbeIJR1d9EOVuAhBAViSQt/hY+BEJvzdvO+ACd+Y1n18r6DnTuui4qEi54Hq8MkaCq5xVIZ1xRmKwfQSfnboS6f0Z9Lfx+CL0pbzv9XXTW92VXnwud+jyY/3Ruq+jnUKY25VK3EKL0fNL+uXr1aoYNGwZAgwYNWLVqldv+pKQkfvrpJ37//Xd27drFyZMnMRgM1K9fn65duzJ06FAaNqyaU2MrpSB6GtqyDyx/AdhHMATFokyxpbqWe6fJ2wruNBnUCMxJ9tfWo8CVHkYuKjP3z1JvlCGqzOqyfwdeRFv2O0fu6JTxENS8TEfu6IwlkPlZXkHYIPvIJiFEheV1S0t6ejrPPfdckcc8+uijTJo0iRUrVnDmzBmaN29O/fr1OXr0KPPnz+fWW2/l119/LfIalZkyhKNi/gMq2l6gM9HJj6JtqSW+hr3T5Na8a4YXsqCdyyMiLSOIRAG05R/I+cO5XVaPhlzZvwNv2lsIocxXRdfmHejU5/IKTG1R0ZPLpC4hhO94nbTMnj2bEydO0L1790KPMRqN3HLLLSxYsICNGzfy5Zdf8t1337Fy5Uq6dOlCRkYGY8aM4cwZ70fPBCoV1BgV8wqQO+um9Qg65akSd5Z1+2UcFI8yxRd8oFtnXHk8JPJz+ywZm4OpXbnUq4Kaoqq9kldgPVSq70BJads5dNJIIHcmXkON3JWbg31ajxDC97xKWrZt28Ynn3xC9+7d6dGjR6HHvfHGG7z66qt06NABo9HoLK9Xrx6vv/46NWrUIC0tjW++8bAvRyWhQq5DRY7KK8heBelvFXuevdPk8rzrFPHL2G2uFhn2LC6gtRkylzq3VfjAcp2+XoV2g4hH8wqyf4L0d3x2fa0t6OQxYDuZW2JEVXsdZaznszqEEGXH46TFbDYzefJkQkNDmTJlSpHHVq9evdB9UVFRXH755QAcOnTI03Aqj4gREHK9c1OnvYHOXl30OVk/5HWaVGFFd5qUuVpEUbJ/BpujxdMEYX2KPLwsqMhREHyNc1unvYbO/s0n19ZpsyFnXV5dUU+iQjr55NpCiLLncUfcuXPnsm/fPiZMmEC9et79SsnOti8aGBYW5tV1KgOlDFDtZfTZ/mA9Amh08jh0yLWFn2Telvc69Kai10lxTVpsiWidjVIhhR/vAa01ZC5CW0+hIh5AGaJ9ev2yorUVMj5C286jIh7y2eyvXsVkS0anvwPWhOIPNjZBRT7s1f9Pt7lZQm/wy9BfpQwQ80rud+AozlXRQ64p9twi6RzIdhmVFHqTfeSSECJgeJS0HDhwgLlz5xIfH8+QIUO8CiAhIYENGzYAcOWVMpIFsP+Rj/kP+twA0JmgU93mXyny3LBCOuA6GOtjn8wrdyIt6zEIau5VvPlkfYtOtbe+6ZzfocaCwOgvkPUt+vwMALRORkU/6+eA7Es8lPT/PYAm233ek9LUZT0J2Wuc28V+lsqQMsRAzJvos4OALNAppboPxQq6BBX9gqzcLESAKfXjIa01kyZNwmKxMHXqVLc+Kp6YNm0aZrOZFi1acP311xd/QhWhTLGo6BdKd5Lpcrc1jQq8rgrKTVxylUFnXJ0xP2/DvA2d+qLP6ygLOuf3vI3MZWU2cqWktPWM22rdJZKxGK1zPKswcwmQ2+nV2AiCO3t2HR9RplaoamWwArSKQsX8B2WI8P21hRBlqtQtLQsXLmTLli0MGTKENm28m4TpnXfe4ccff8RkMjFjxgyvE6DKRoXdYl+fyGUoc+EHR0LYzSX75WhsmJesWI6CD58OXTj0GoDMhWhTG1R4f99VVBbMu/Je6wz74nnlMNy3UFlfArlT2htqo8LvKeRAjU57G3uLRLJ9Yriwm0tVldZWt5WWVdgA+2MaP1Nht+V+B/4s/uASXdAEId1RQU19cz0hRLkqVdKSkJDArFmzqFu3Lo8//rhXFS9btoxZs2ahlOKFF17wOgGqrFRIZwjx8S9eYyPAPg+Hth7Flw3kbn0iXMtTnwVTnM/Xr/EVrbPAst+9LPPzcpmjpOB4NDrD5V6GDURFDi/8eMvh3CQnN+5SJi3k/OY2ooaw20t3fhlSIVdByFX+DkMIUQGU6qfUtGnTSEtLY9KkSURGFtHZsxgrVqxg4sSJaK159tln6dOn/EcoVGWqjOZquXC9GiIeuWAV31F+W8W3WOa/cPbzcZZtR5v3+iUczBvB6hhNp1BhRbdSuSVXOevsE8SVgttCmyHXo4x1SnW+EEKUh1K1tOzevRuAqVOnMnXqVLd9WVlZAJw8eZIuXboAMGfOHNq1c5+Y6scff+TJJ5/EarXy9NNPc9ddd3kcvPBQWc3V4rpejQpDRTwEwVehk4YCNrAdRyePhervo1QFexRo2VVgsc78HGUqekh/WXBLIoK7oIKKWebC1B6MF4P1oP38zMWoqHElq8t62j7UOZe/WpeEEKI4Hj20PnPmTL7/0tLsnRZtNpuzzGw2u523evVqxowZg8ViYfTo0TzwwAPevwNRehe0tGitfXLZgtarUSGdL1jF9/dyXcW3pLRrfxbXYb6ZX9kfHZVnLLZk++KXuUqSRCil3JduyFxqnyiuJDKXkdd3ph4EX13yYIUQohyVqqXlwoUQXS1dupQJEyYUuGAiwLp16xg1ahRms5mHH36YRx99tICriHIR5JK06DR764gqfALAktCWI+7r1YS5/KENfwDM2/NGwqS/Y++YG3qjV3X6lEvSoiKG2xMrnZE73Pw7COtbfrFkfoXrFPOEdCvZeWH94PwswAy205C9GkILn6kacvvOuPZDCutf8VrBhBAiV7kMD9i6dSsjRowgOzuboUOHMnbs2PKoVhRGVQflMtzTB4+I3P7wBbVwG3qtlEJFv2gvdxyfMh5tOeB1vb6gdQ5Y/s4rCO5gn3jMsT+j4M7FZROLdm+xCru9xHPcKEMNtyTF7TqFyVmfO4khgJJVjoUQFZrHM+KWxvjx48nIyMBoNLJ9+/ZC+7G0bt2ayZNlpdWyppRCGxuC5S97geUYmNp6fL1869WE5V+vRhki7BPmne2f27pjX8WXmkuKnsG3PFj2AY5HKSb7xGNhg9CZuUOAzRvRloOooIvLPhbz9tx47Eo7wZsKG4h2tGhl/2qflbiIdXXcEpvgrihjg1LVJ4QQ5alckhZH3xar1cqWLVsKDyaoXMIRYO+M60havG1pybdezW0FHqaCmkG1l9DJI3LrPYhOGQ8xc/w7M6lrf5agOJQyoU1tISjOeY90xmJU9NNlHorOXJS3Yepgv2elEfwvl3l4bPYJ4yJHFlyXLQmy8qa1lw64QoiKzmdZwu23387ttxc8t0NRfWGEn7h0xtXWY17N1eI20qWY9WpUaA90xPC81auzf4D0dyFymBcReMetE27uPDJKKQgbgD6fOyNr1jJ01JgyXY5A29LsE9rl8iSJUMpgjzu3s7POWAIRwwvup5L5Fc4WJkPNkvedEUIIP/H/lJfCL5SPhj1r6wnIcV2vpgQjXSJHu41Q0Wmz0NlrPY7Bay7DnZWpdV55WB8gN0mxnYPslWUbR9Y39s6/ACoaPO2oHHY79vWlANsJcF2eIFfBfWdMntUnhBDlRJKWqspt2LMXj4cyvwByh0wbG0Nwp2JPUcqIinnVZb6Y3FV8rcc9j8NDWptzJ5bLZYp3vlSGahDaK+/YjBJ0bPUmFtfrh/VBqVCPrqOMdSHkuoKv62De5tb52J+LIwohRElJ0lJVuQ57tp5Ea0upL+HNejXKEIOKeRPnwkc6GZ00stznRLFP3e9YYDDI3o/FhftMs2vRFh9OxudCm3eDZWdevV4mEW4tXtkr7Ysvutbn1gG3k6zFI4QICJK0VFWuj4ewgPVU6a/h5Xo1ytQaVW2aSxi70KlTfTbZXYmYd+e9Drokf58VUwcw5nWG1ZlflEkYbkPGTW1RppbeXTDkajDUzd2w5E4gl1vXhX1nSvBITwghKgJJWqoopULB4LK+jAdrEOVfr6Z26eMI6wuuqxdnfgGuI2jKmHZp3XB9NOSQf6bZJR61ShUZg87M7RSbW6cPkgilgiAsb84Vnbk4LxnM+hp0Zu6BMRB6g9f1CSFEeZCkpSrzojOuL9erUVHjwZS3RpVOnYbO2ebx9UrFpaVFFZC0ABDaD8jtpGpLhOxffRtD1negz+cGEQGhpVyhuRD2RRZzx4VZD9sXYeSCyfLC+qBUiE/qE0KIsiZJS1XmkrTo0nbGzVxK3no19b1ar0apYFTM62BwtNSY0ckj8/XD8DWtrWDek1cQVHDSoow1IaR73nklmWm2NHG4DRm/2T4Rnw+ooIYQ3MWtHl/3nRFCiPIkSUtVdsHCiSVVFuvVKGNde+LimDrIlohOfrzki/55wnIQcHT8NUIR/UjcHhFl/4L2pA9QAbRlP5g359Xj4yTCrQUs6zt0+rt526bLUaZYn9YnhBBlSZKWKkx5Ouw5Zz1Y/3FcxWfr1ajgK+2PihzMG9DnX/bJtQtkcZ0Jt3nRQ4yDu4DBMcW9za1jqzdcR18RFOfVcgoFCunmsmp1DmR969wlHXCFEIFGkpaqLMjDlha34bJXo4wX+S6m8CEQ6rIMQMaH6MxvfHd9F24z4RbyaMhBKYNbcmbv2Grzrn6d45b8FLRmk7eUCi54VJeKcFsUUgghAoEs9lOVuba02M6ibenF9qfIv16Njx9nKAXVpqEt+8Cy115n6kT7cGRTXDFnl5LZdSbcopMWAML6Q9ocwGZP8jLmoY1NPK5em/eATsrdCil0zSZvqbAB6PT33AtDb0UZwsukPiGEKCuStFRlhjrYR8Xk9huxHgNDMYlB5vK84w21ymS9GqXCIOZN9NnbQaeCzkQnj4Za39qH8vqA1jawuHTCdZ2+v7C4jPXQIdc6R03p8y/5JBYAQnvZZ+AtAyqoGdrUEcwb8spkcUQhRACSx0NVmFKGC4Y9F/2IKP96Nf3KbL0aFdTYPtW/c8juIcheU+Q5pWI9DDrdURsEtSpZXGGDfBeD63XLOIlQ4S5xB8UX+zhMCCEqImlpqeqMDe0JARTfGde8LXfae7uy7sipQq5Fh9wA2fbHUTrzc1To9b65uOtMuMZmJR9mHHI9RIzMbW2x+iCQIFTYTajgDj64VhFCb7Y/bjPvRUU96fO+M0IIUR4kaanqXPq1aOtRivpT5t4BtzMqyPP+HCWlwgeic5MW+1DjBPuCgF7SZteZcC8teTxKoaJGQ9Ror2MoT0oZUFFP+jsMIYTwijwequJUCUcQ5V+vppwmJXMbamzNndTOByyuM+EW359FCCGE/0nSUtWVdCp/P61XYx9q3N+57Zuhxtpt5JD07xBCiMAgSUtV5zrs2XKs0BWW3aaaL+/1asLuwPlRtR6DnHXeXc96NG+tHyjRyCEhhBD+J0lLVefa0kIW2PKv96PNu9xmjy3vmVSVsR6EXJMXj7dr/7jOhGtsgjJEeXc9IYQQ5UKSlipOGaJBucwPUsAjIrdVgU1XoEyXlENk7twSpayf0LZzHl/LvROuPBoSQohAIUmLKHLhRG3LgKyvnNt+W68m5LrcyfAAzN6t/eMy3FlJfxYhhAgYkrSIojvjZn0HOs3+WkVAaO/yi8uFUkEQ1s+5rTM+L7T/TVHydcKV/ixCCBEwJGkRbgsn6gtbWlz7j/h5vRq3YdbWQ2DeXPqL2E6ATs7blsdDQggRMCRpESjXlhZLXkuLNv8N5i15x/l5vRoV1BiC/+XcdhvRVFKurSzGhihDjPeBCSGEKBeStIgL+rS4JC2ZLh1wg1qjSjFzbFlx75D7HdqWWqrztdv8LPJoSAghAokkLcI9abGdQusctM6BzC+dxf5uZXEK7Wmf3A6ALMj8qqij83NJWpQ8GhJCiIAiSYsAY32cqymjwXoCsn5w6fsRCqG3+ie2CygV7N4hN7PkHXK11u5ztEjSIoQQAUWSFmFPBAz18wqsxy7ogNu7Qk3ApsJdOuRa9oJlR8lOtCWA7Wzetgx3FkKIgCJJi7Bz6Yyrs9dCzh/O7QrzaCiXCmoBpnbObbfJ74riMj8LhnooY00fRyaEEKIs+SRpWb16NXFxccTFxdGtW7dCj0tPT2f27Nn06tWLtm3b0rlzZx5++GHWr1/vizCEN1xXe85YkPfa2NwtQago3BKprG/QtvRiz5GZcIUQIrB5nbSkp6fz3HPPFXvcuXPn6N+/P2+//TbHjx+nefPmhISE8Msvv3DffffxySefeBuK8IJy7YxLdl55+ECUUvlP8LfQ3qByH1npdMhaUfw5FpeZcCVpEUKIgON10jJ79mxOnDhB9+7dizxu4sSJHDp0iPj4eH766SeWLVvGL7/8wv/93/+hteaFF15gz5493oYjPOW2cKKDCcL6lHsoJaFUGITldQ4u0SKKri0t0p9FCCECjldJy7Zt2/jkk0/o3r07PXr0KPS43bt3s2rVKgwGA7Nnz6Zu3boAKKUYNGgQffr0wWq18t///tebcIQ33FpacoX2RBlqlH8sJeQ2Z4v5T7T5r0KP1dbTYEvMK5CWFiGECDgeJy1ms5nJkycTGhrKlClTijz2+++/B6Bz5840adIk3/5BgwYB9r4xGRkZnoYkvFFA0uK3xRFLSJlaQ1DehHdFtra4DnU21EYZ6xR+rBBCiAopyNMT586dy759+5gwYQL16tUr8tht27YBcOWVVxa4v23btgQHB5Odnc2ePXto3769p2FVKFZbJjZt9ncYJaK1CU0o6Cx7gbEBytgaZS3djLPlTYfehj6f+9gnfT6kf1rIkba8l8ZYDBX8fQkhRGkZlAmjIczfYZQpj5KWAwcOMHfuXOLj4xkyZEixxx8+fBiAxo0bF7jfZDJRv359jhw5wqFDhypF0rLn7HT+Sf0Etz+WAcHxkUiA9Kv8GknJleRjbMDZsJi1HlI7l2VAQgjhBwYaRw+mVc0J/g6kzJT68ZDWmkmTJmGxWJg6dSpGo7HYc1JSUgCoVq1aocc49qWmVo5fwEdTFxJ4CYsQQojAZcv921N5lTppWbhwIVu2bGHw4MG0adOmROdkZ9uH0JpMpkKPCQ4OBiArK6u0IVVIjaLvRubuE0IIUV4Uxty/PZVXqR4PJSQkMGvWLOrWrcvjjz9e4vNCQkLIzMzEbC68f0dOTg4AoaGhpQmpwmpVcwKx1R8PmD4tQgghApv0abnAtGnTSEtLY/r06URGRpb4vOjoaDIzM52PiQri2BcdHV2akCo0oyEMI5X7AySEEEKUl1IlLbt322cUnTp1KlOnTnXb53isc/LkSbp06QLAnDlzaNeuHU2bNiUhIYEjR44UeF2z2cyJEycAaNq0aanegBBCCCGqBo9GD505c6bQfTabzbnf8Tjo8ssvZ/369WzevLnAc7Zv347ZbCYkJIRWrVp5EpIQQgghKrlSJS2rVq0qdN/SpUuZMGECDRo0yHfcjTfeyNy5c1m/fj1HjhzJN8HcokWLALjmmmuIiIgoTUhCCCGEqCLKZXhLfHw8119/PVarlTFjxpCYaJ9OXWvNokWLWL58OQaDgeHDh5dHOEIIIYQIQB7PiFtaL774InfddRe7du2ie/futGjRgqSkJE6ePIlSimeeeYb4eFkPRgghhBAFK7eJRGrUqMEXX3zBI488wkUXXcT+/fvJzMzkmmuu4cMPPyzRzLpCCCGEqLqU1lr7OwghhBBCiOLIlK1CCCGECAiStAghhBAiIEjSIoQQQoiAIEmLEEIIIQKCJC1CCCGECAiStAghhBAiIEjSIoQQQoiAIEmLEEIIIQKCJC1CCCGECAiStAghhBAiIEjSIoQQQoiAIEmLEEIIIQKCJC1CCCGECAiStAghhBAiIEjSIoQQQoiAIEmLEEIIIQKCJC1CCCGECAiStAghhBAiIAT5OwCA06dPs3btWnbu3MmOHTvYs2cP2dnZdOzYkfnz5xd57oEDB3jvvff4448/OH36NFFRUbRt25b77ruPq666qsBzunXrxvHjx4uNq0GDBqxatarAfd9//z0LFixg7969mM1mmjRpwm233ca9996LyWQq/k37UXnfbwCLxcLnn3/ON998w99//01GRgaRkZG0atWKvn370qdPH5RSBZ6rtWbJkiUsXryY/fv3A9CiRQsGDBjAHXfcUeh5FYE/7jXAN998w+LFi9mzZw+ZmZnUrVuX6667jocffpjatWsXeW4gf7a11mzdupVVq1axefNmDh48SFpaGlFRUbRu3Zq+ffty6623FvqZSU9P55133uH777/nxIkThIeHc9lll/HAAw/QqVOnIuv+448/+OCDD/jzzz/JyMjgoosuolevXgwbNozw8PBCz/OmTn/yx7325vsEYDab+eijj/jqq6/4559/MJlMtGzZkiFDhnDDDTd4dT/KWnnfb2/r86TOklBaa+3RmT704YcfMn369HzlxX0Qf/jhB5544gmys7OJioqiadOmnDlzhpMnTwIwduxYHn744XznjR49mtOnTxd63R07dmA2m7nlllt49dVX8+2fOXMm8+bNA6Bx48aEhYWxf/9+rFYrHTp0YN68eQQHBxf7vv2lvO93VlYW//73v9m0aRMAderUoXbt2iQkJHDmzBkAevbsyRtvvIHB4N74Z7PZGDNmDN999x1gT1YAZ/Jy88038+qrr1bYxKW877XNZuOJJ57g22+/BaBhw4bExMRw8OBBMjIyiImJYf78+cTGxhZYb6B/ttetW8fQoUOd240aNSI6Oprjx4+TnJwMwHXXXcecOXPyvY9z585x9913c+jQIYKDg2nRogXnzp3j1KlTKKWYPHkygwcPLrDe+fPn88ILL6C1pl69etSoUYP9+/eTk5ND8+bNWbhwITExMfnO86ZOf/PHvfb0+wSQnZ3N/fffz+bNmzEajbRo0YLMzEz++ecfAB566CGeeOKJUt6F8lPe99ub+jyts0R0BbB48WI9dOhQ/eqrr+offvhBv/baazo2Nlbfc889hZ7zzz//6LZt2+rY2Fg9depUnZWV5dy3YsUKHR8fr2NjY/Xvv/9eqliOHj2q4+LidGxsrF67dm2+/T/88IOOjY3Vl156qf7pp5+c5fv379fdunXTsbGxevr06aWqs7yV9/1+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hw4daNSoUbF1jhw5EoB3333XbQXogwcPMmnSJMD+x6RGjRqlei+BwJP7XaNGDa699loAXnzxxXyJy1dffcXbb78NkG+lZ5PJ5FwU8KWXXnKbnG7r1q28/PLLgH0emKCggH/S6cbTz/apU6f48ssv3WaZtNls/PjjjwwfPhytNcOHD6d58+b5zq0Mn22r1cq4ceNYvXo1tWvX5qOPPirR9zo+Pp7rr78eq9XKmDFjSExMBOwtsYsWLWL58uUYDAaGDx+e79wRI0aglGL58uUsWrQInbsGbWJiImPHjsVms9GjRw9atmzpszorAn/ca0/VqlXLObJu4sSJbvMbrVq1ivfeew+ARx991Gd1+lp5329P6/OmzpKoEKs8nzx5kr59+zq3c3JyyMjIICgoyK2jz4MPPshDDz3k3O7Tpw979+6lVq1a1KtXj7S0NOekNnFxcbz33nvUqVOn0HrT09Pp2rUrGRkZTJ8+vcBZcAvy4osv8tFHHwH2yXPCw8P5+++/sVqttG/fng8++CDfSIGKpLzv96lTp7jnnnuc/TBq165NnTp13FYLvfzyy5k3b16+rNtms/HYY4/xww8/APlXee7VqxezZ8/Ot+RCRVHe93rPnj307dvXOXlTtWrVOHbsGElJSSiluP/++3n66acLjTfQP9vffPMN48aNA6BBgwaFzu4LMHnyZFq3bu3cPnfuHHfddReHDx92rkqblJTEyZMnUUoxceLEfBMgOnz44YfMmDEDrTX169enevXqzlWemzVrxsKFCwtM9ryp09/8ca89/T6BfWjt0KFD2bp1K0ajkUsuuYSMjAxnX5YHHnigyO+Gv5X3/famPk/rLIkK8fPUarW6TUHuYLFY3MovHM99zz338P3337Nv3z7++usvwsPDad++PTfffDMDBw4scow45M3NEh4e7mzOKolnnnmGK664goULF7Jnzx4SExNp3rw5t912G0OHDi22Xn8r7/tdr149vvzySxYsWMDKlSs5ePAge/fuJTIykg4dOtC7d+9CzzcYDLzxxht8/vnnLF68mAMHDgD2DqgDBw5kwIABRfZD8jd/3OuhQ4eyceNGjh8/zsmTJ6lZsya33HILd999d7F9YAL9s+3a9+n48eNus/5e6Pz5827bNWrU4IsvvuDdd9/lu+++Y//+/YSHh3PNNdfw73//u8hO+kOHDiUuLo558+axfft2zp49y0UXXUSvXr0YNmxYoU3g3tTpb/64155+n8A+tPbjjz/mww8/5Ouvv+bw4cOYTCY6duzIPffcU6q/Af5Q3vfbm/o8rbMkKkRLixBCCCFEcSpmm7oQQgghxAUkaRFCCCFEQJCkRQghhBABQZIWIYQQQgQESVqEEEIIERAkaRFCCCFEQJCkRQghhBABQZIWIYQQQgQESVqEEEIIERAkaRFCCCFEQJCkRQghhBABQZIWIYQQQgQESVqEEEIIERAkaRFCCCFEQJCkRQghhBABQZIWIUQ+KSkpXHbZZcTFxbFixYoij33ttdeIi4uje/fuaK3d9m3evJknnniC66+/njZt2tC+fXvuuOMO3nnnHdLT0wu8XmZmJt988w1PPfUUffr0oXPnzlx66aV07dqVESNGsHr16kJjWbp0KXFxcXTr1g2AP/74gxEjRtC1a1datWrF+PHjS3knhBAViSQtQoh8qlWrRu/evQH4/PPPCz3OarWydOlSAAYMGIBSCgCbzcbzzz/P3Xffzddff82JEycICgoiMzOTHTt28Oqrr9K/f3+OHz+e75r/+9//GDduHMuXL+evv/7CYrEQFBTE6dOnWblyJcOGDWPmzJnFvoePPvqIoUOHsnLlSrKysjAajZ7cCiFEBSJJixCiQHfddRdgb604evRogcesXr2ahIQEgoKC6N+/v7P8jTfeYP78+dSsWZMpU6awfv16tm7dyp9//snHH39M69atOXToEKNGjcJms7ldMzo6mgceeICFCxeydetWNm3axLZt21izZg2jRo3CZDIxb948Vq5cWWjsZ86cYebMmfTr149ffvmFTZs28eeffzJixAgf3BkhhL9I0iKEKNBll11Gq1at0FoX2triKO/WrRu1a9cG4NixY7zzzjuEhoYyb948Bg8eTExMDAAmk4lOnToxf/586tWrx65du1i1apXbNXv06MHTTz9N+/btCQsLc5bXqVOHkSNHMmbMGADmz59faOzZ2dl0796d6dOnU79+fQCMRiONGzf27GYIISoESVqEEIVytLYsW7YMs9nsti8hIYFff/0VgEGDBjnLly1bhtVq5eqrr6Zly5YFXjcyMpIePXoAsGbNmlLFdN111wGwbds2rFZroccNGzasVNcVQlR8Qf4OQAhRcd1yyy3MnDmT06dP8/PPP3PDDTc49y1ZsgSr1UrDhg3p0qWLs3zLli0ArF271q38QhkZGQCcOHEi374zZ86wcOFC1q5dy+HDhzl//ny+BCUzM5OUlBRq1KiR7/zQ0FDi4+NL92aFEBWeJC1CiEJFRERw22238emnn7Jo0SJn0mKz2fjiiy8AGDhwoLMDLkBiYiJgT0ociUlRsrKy3La3bt3KsGHDSE1NdZaFh4cTFhaGUgqr1UpSUhJgT1wKEhMTg8EgDclCVDaStAghinTXXXfx6aef8vvvv3Ps2DEaNmzIb7/9xvHjxwkKCuL22293O97RIvLQQw/xxBNPlKoui8XCuHHjSE1NpVWrVowZM4b27dsTGRnpPOaff/6hZ8+eAPmGWDvISCEhKif5KSKEKFJcXBxXXHEFNpuNJUuWALB48WIAunfv7uyA6+DYLuixT3G2bdvG8ePHMRqNzJ07l2uvvdYtYQE4ffq0J29DCFEJSNIihCiWo0PuF198QUJCAj///DNgfzR0oXbt2gHw+++/k52dXap6Tp48CUCNGjWoW7dugcesW7euVNcUQlQekrQIIYrVu3dvYmJiSExMZNy4cZjN5nwdcB369+9PUFAQSUlJvPHGG0VeNycnx21m3KioKMDeEffMmTP5jj916lSRQ52FEJWbJC1CiGIFBwc7+65s3LgRyN8B16Fx48YMHz4cgPfee4+nnnqKffv2OfdbLBb27NnDm2++yQ033MCePXuc+9q3b094eDhaax5//HEOHToE2PvJrFmzhiFDhpTZexRCVHzSEVcIUSJ33nknH3zwAVrrAjvgunr00UexWq289dZbLF++nOXLlxMaGkpoaGi+4cuuiU9UVBRPPfUUzz33HBs3bqRXr16Eh4djtVrJzs6mevXqTJ8+3ZkUCSGqFklahBAl0qRJE1q1asXu3bsL7IDrSinFY489Ru/evfn0009Zv349J0+eJC0tjejoaJo2bUq7du3o2bMnV1xxhdu5d911FxdddBHvvfceO3fuxGq1UrduXa699loeeuihfJPcCSGqDqULGzMohBAuTp8+zXXXXYfFYuH999+na9eu/g5JCFHFSJ8WIUSJfPbZZ1gsFpo0aVLkTLdCCFFWJGkRQhRrx44dzJs3D4ChQ4cW2AFXCCHKmvRpEUIUqlu3buTk5DgndGvdujUDBgzwc1RCiKpKkhYhRKGOHz8O2Ge5vfrqqxk3bhwmk8nPUQkhqirpiCuEEEKIgCB9WoQQQggRECRpEUIIIURAkKRFCCGEEAFBkhYhhBBCBARJWoQQQggRECRpEUIIIURAkKRFCCGEEAFBkhYhhBBCBIT/B3hGt8lrFR5JAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(gss2\n", " .groupby('year')\n", " [['age', 'hours_worked']]\n", " .median()\n", " .plot()\n", ")" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAFACAYAAABwa0xrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABD0klEQVR4nO3dd2AVVeL//XcaCSGBEEqQkoR2Q1dEioLIUhQsgA1BQAIq0hQpAsrKfv3pLsWOq8iqoS6IoFSxAiJdSqiGThJCTCH09NzM80eee5fLTYDcBMKEz+uvMGfOnDPHe80nM2fOuBmGYSAiIiJyi3Mv6Q6IiIiIXA+FFhERETEFhRYRERExBYUWERERMQWFFhERETEFhRYRERExBYUWERERMQWFFhERETEFhRYRERExBYUWERERMQWFFhERETEFhRYRERExBYUWERERMQWFFhERETEFhRYRERExBYUWERERMQWFFhERETEFhRYRERExBc+S7oCImJdhGBiGUdLdEJECuLm54ebmVtLdKDYKLSJy3QzD4OLFi1y4cIG0tDSsVmtJd0lErsHDwwNfX1/Kly+Pv7+/qUOMm6E/k0TkOuTm5pKQkMD58+dLuisi4qKAgACCgoJwdzfn7BBdaRGR63L+/Hl7YAkMDMTf3x9vb29T/9UmUtoZhkFmZiYXL17kzJkznDt3Dh8fHypWrFjSXXOJQouIXJezZ88CULVqVSpVqlTCvRGR6+Xr64uvry+enp4kJSVx9uxZ04YWc14fEpGbyvbXGkD58uVLuDci4grbdzczM9O0E+gVWkTkmi7/H5yHh0cJ9kREXHX5d1ehRUREROQGUmgRERERU1BoEREREVNQaBERERFTUGgRERERU1BoEREREVNQaBERERFTUGgRERERU1BoEREREVNQaBERERFT0AsTRURukMOHD/Pzzz+zadMmTp06xZkzZyhXrhyNGzfmmWee4aGHHsq3XmJiIh9//DG///4758+f54477uDhhx9m6NCh/OMf/2Dp0qVMnjyZJ554wqnuqVOniIiIYOPGjSQkJODh4UHdunXp2bMnzzzzDJ6e+t++mJc+vSIiN8i//vUvtmzZgp+fH1WqVKFKlSokJyezadMmNm3axKBBgxg/frxDnRMnTtC3b19SUlLw8vKifv36ZGRkMGPGDLZs2ULNmjULbG/dunWMHj2a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asWUKVMcrhQFBgby/vvv061bN3bt2sWuXbu4++67gbxQe/LkSfz8/Hjvvffw9/e313vggQcYNmwY77///lXHtTTSnBYRKTYnLyzAnIEFIPf/73/xe+qppxwCi81dd90F5M2/sPn9998BeO655/I91sCBA+11bEGiuNx3330OgeVy1atXB/J+mRa3OnXqUKVKFZKSkuznlJWVxZ49e2jQoAEPPvgggMMiagXdGrKN37PPPusQWGyefvpp/P39uXTpEpGRkfn25/HHH7+ufv/yyy+88MILZGRkMHXqVKfAAvDTTz/Z281vBVpfX1/uu+8+wDG02c6jZ8+eDoHFpk+fPvmeX2mnKy0iUmxqlX/WtFda3PCgVvlnb8ixQ0ND891uu02QlpYGwMWLF+0vlrVYLPnWqVq1KgEBAZw7d47jx4/br9AUB9s8lfw8//zzvPnmm0yaNImIiAjatWvH3XffTatWrahSpUqR227VqhXff/8927Zto3bt2kRGRpKZmUnr1q2pWrUqtWvXZseOHVitVjw8POyhxXaVxsYWegoaP29vb4KDgzlw4ADHjx+nXbt2TvvUrVv3mv1ds2YNM2bMwMvLi3//+9888MAD+e5nWzb/q6++crj9c7n4+HgAh7kzx48fv2pf/P39qVq1KqdOnbpmX0sThRYRKTYNK72OpeKrmtNyhbJl8z+u7S9v2yvgUlNT7WW2QJOfKlWqcO7cOYf9i4Ovr2+BZb169cLPz4+IiAj2799PdHQ08+fPx93dnbZt2/L6669f1y/7grRu3doeWnr37u0USlq1asWiRYs4cOAATZo0sc9nuTK02MbkWuN3+b5Xuto42MTFxWG1WgkMDHSYPHylixcvAnm3s67FNn8I/hdkr3YelStXVmgRESkKD/eyeHBjfvmXdpfPr0hJSaFixYr57pecnOy0v5ubG/C/AJQf2y9CVz388MM8/PDDnD17lp07d/LHH3+wevVqNmzYwOHDh1m5cqV9smhh2W7zbN++Hci7VeLh4UHLli0BaNOmDYsWLWLr1q24u7tz4cIFatWqxR133OFwnHLlynHhwgVSUlIKbCu/8Susfv36ERcXx8qVK+nfvz/z5s3L94qar68vFy5cYPHixTRr1uy6j28LTlc7D9tVuduJ5rSIiNwi/P39qVy5MgCHDx/Od5+kpCT7uh6X386xXc0p6BfZ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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(gss2\n", " .groupby('year')\n", " [['age', 'hours_worked']]\n", " #.mean()\n", " #.median()\n", " #.std()\n", " .max()\n", " .plot()\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [], "source": [ "# add sex\n", "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " #.median()\n", " #.std()\n", " #.max()\n", " #.plot()\n", ")" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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trYW69atwxtvvIE33ngDp5xySmBMV6Curg7HHnssVq9ejfHjx3tzBYDXXnsN559/PizLQnl5uVeAtGbNGrz44otYunQpjjzyyA4dd6+99sILL7yAd999F2PGjPGWf/LJJ2hvbwcAvP/++7BtG4bhxxTc6ra9996b29+bb76J888/H62trSgtLcV2222HhoYGvPvuu3j33Xfx8ssv47bbbvM+m4h77rkHN998MwYOHIjRo0djzZo1kZ9h6dKlOOOMM7BixQqccMIJuOaaa7y5Ll26FGeeeSaWLVuGRCKBESNGIJVKYenSpbjnnnvwwgsv4G9/+1vATuiTTz7BD3/4Q7S0tCCdTmP8+PFoaGjAzTffjHnz5kWfWI1I9BpCJWLChAmYOXMmDj74YCxcuBCzZ8/Gd7/73Vhjd999dwBAfX096uvrpU7rfRl8Y+TSbhNj895LcQlVjXIfGhodQd5ug01zPT2NomCQZCxtY0dw8803Y9q0abjyyis9bekLL7yASy65BA8//DCmT5/uFfF8+eWXuPrqq2FZFk4//XRccsklXsGOS7RmzZqFiRMn4thjj+3SeT7yyCOYOHEiHnzwQWy99dYA4BGaW265BZZl4ayzzsJPf/pTrojoq6++8gqSOoK9994bL7zwAt5++20cd9xx3vK3334bgJMNWbt2LRYuXOjpbG3b9o7JEqqNGzfi4osvRmtrK77zne/g2muvRUWFY0Pzxhtv4MILL8TLL7+Mu+66CxdccIF0PrfddhtmzJiBk046CYZhwLZtWJYl3RYAFixYgDPPPBMbN27EOeecg4svvthbl8lkcO6552LZsmU4+uijcfnll2PQoEEAHAJ71VVXYc6cOfjZz36Gv//979y4Sy65BC0tLTjooINw0003obra+U1//fXXceGFF4bOSSMeei2hAoCKigrsvffeePHFFzF//vzYhIr1tOqPoUyuwi9muq8jSHaEUG3GKj+N/o+FG6/HssZZYDWDfQMGRledgh0GBdNHncXYsWNx7bXXchH7I444As899xzmzJmD119/3SNU9913H3K5HHbfffdA+m7atGn4/PPPcd999+FPf/pTlxMq0zRxxx13YPjw4d6ykpISAMDixYsBAGeddVagInv8+PEYP358h4+7zz77AADeffddbvk777wDQgjOOussXHfddXjnnXc8QvXZZ5+h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7VrsvPPOOPXUU7tkfxo9h974m5Ho6MA///nPWL9+Pa644gqYpsmtW79+PebOnYv//e9/+PTTT7Fw4UJkMhnsvffeePDBByP3vWjRIvzlL3/B22+/jfXr16OyshK77LILTjvtNOy7777SMVOmTMHKlSsj97311ltjzpw53vt8Po+3334br732Gj766CMsWbIE7e3tqKmpwc4774wTTjgBBx10UOR+i0Wc+U6dOhV33XVXlx+7OxF1XXz22WcAgMceewz33HNPl1wXu+66K55++mmcdtppmDBhQmCcZVl49NFH8fzzz+PLL79Ea2srKioqsMMOO2DatGk4+uijQQiJ9fluuukm3HvvvQCA733ve7jhhhtijYuL2trayG1OPfVUXHXVVV163O5G1HWxbNkyAMBdd92Fa665ptPXxc4774yRI0fi3nvvxfHHH4+hQ4dKxz7//PN47LHHsHDhQrS1tWHYsGE46KCDcPbZZ2PIkCGhx6WUYvbs2XjqqaewcOFCNDY2oqamBuPGjcOBBx6IH/3oRzHPTjSmT5+Od999N3SbCRMm4JlnnumyY24uqK4NSimWLl0KAHj99dexzz77oLm5GZWVldhxxx0xbdo0HHXUUaF/uy0tLfjzn/+MF198EatWrUJZWRmGDBmCd955B3PmzMGUKVMCYzp7/wKAtrY2PPTQQ3jxxRexdOlSZDIZDB48GBMnTsTRRx+Ngw8+uMizpEZ//c3Y3Pj2t7+N2trayN+MMHSIUK1duxb3338/xo4diyOOOCKwfvbs2bj++us7smu89NJLuOyyy5DJZFBZWYkJEyZgw4YNeO211/Daa6/hkksuwdlnnx0Yt9NOO2HYsGHK/X766afI5XLYfffdueVPPvkkrr76agCAYRgYPXo0ysvLsXTpUsyZMwdz5szBCSecgGuvvTb2TbcYjB07FgMHDpSuGz9+fJcfrzsR57p4+eWXvW2LQdh14eKmm27Cfffdx41rb2/Hj370I7z//vsAgKFDh2LUqFFYu3Yt3nrrLbz11lt4+eWXcfvtt8MwwgO2CxYswAMPPFDUvDuK7bffHhUVFdJ1o0aN2ixz6CrEuS4++OADAMDy5cuL2rfqunj99de9be644w5cd9113DjbtnHZZZdh9uzZAICRI0di1KhR+Prrr/Hggw/iueeew4MPPojtt99eetyWlhb85Cc/wZtvvgnA+U5GjBiBjRs34r333sNnn33WpYTKxVZbbYWtttpKum7s2LFdfrzuRti18fbbb+Puu+8GANTV1WHUqFHYeuutsXLlSsydOxdz587F7NmzcccddyCVSgX2XVdXh5NPPhmLFy9GKpXC+PHjUVdX5z3IXn311fjvf/8b+LvvzP0LcAj+j3/8Y6xcuRKJRALbbLMNUqkU1q1bh5deegmEkC4lVC76029GT4AQgvPOOw8XXnih9DcjDjpEqB555BG0t7fjmGOOkd6EKioqsO+++2LnnXfGzjvvjAULFsSKtCxfvhw/+9nPkMlkcMopp+Dyyy9HOp0GAPzzn//Ez372M9xyyy3YZZdd8I1vfIMbe/vttyv3u2LFCu8CPvbYYwPra2trMX36dBx22GGorKwE4EQ1HnjgAfz+97/HI488ggkTJuDkk0+O/AzF4uyzz8YxxxzT5fvtCcS5LkaNGoXly5fj8MMPxzbbbNNl10Uul8PcuXOxaNEijBs3zht777334v3330c6ncb//d//cU+ks2fPxs9//nP8+9//xlNPPSW9Nlzk83lcddVVSKVS2GuvvfDWW28Vc2qKxtVXX4199tmnW4+xuRDnuhgyZAjWr1+PH/zgB6iqqurS6+Kpp57CZZddhurqam/sX/7yF8yePRtlZWW47bbbcOCBBwIAWltb8atf/QrPPvssfvKTn+D5558P3KwppfjpT3+KN998EwcccABmzJiB0aNHe+sbGxvx3nvvdehcReHYY4/FT3/6027Zd08g7NqglGLAgAHYtGkTjjjiCNx6663euqeffhq//OUv8dprr+G2227Dz372s8C+r7rqKixevBgTJ07En/70JwwbNgyUUjz66KOYMWMGNm7ciIcffhg/+MEPuHEdvX8BDok77bTTsH79epxxxhk499xzUVVV5a1ftWoVVqxYUcwpio3+9JvRU5g6dSpqamrwzDPPBH4z4qBoDZVlWXj88cdBCMFRRx0l3eb73/8+/vrXv+KSSy7BIYccgkGDBsXa96xZs9De3o7x48fjqquu8n4cAeDwww/H9OnTAQC33XZbUXN++umnQSnFVltthcmTJ3PrDjnkEDzzzDM47rjjPDIFAIlEAj/60Y9w3HHHAXD+8DXUiHtdHH300QCAcePGdfl1AQD/+Mc/uLFuevfEE08MhPePPPJITJs2DQC4iIYM9913HxYsWIALL7wQw4cPjzVvjfjXxf777w8AmDhxYpdfFy6pcmHbNv76178CAM455xyPTAFAWVkZrrvuOmy11VZYunQpN87Fk08+iblz52LXXXfF3XffzZEpAKiqqsLUqVNjfYYtGVHXxi677IJLL70UALjvFgCmTZuG888/HwDw+OOPw7Ztbv2CBQswZ84cGIaBW2+91cteEEJwwgknYM899wQALwLGoqP3LwC48cYbPTJ1+eWXc2QKAEaMGIG999479v40Ni+SySQOP/xwZDIZ6d9+FIomVO+99x7Wrl2LCRMmYMSIEUUfMAxu2P/ggw8O6CwA50cSAD766KPYLJ9SiqeffhoAcPTRRweegmpqakJTee6P7eLFi2MdrzvR0tKCmTNn4thjj8Uee+yBXXbZBYcddhhuvvlm1NfXS8fU1taitrYWK1aswIcffogf//jH2GeffTBp0iRMnz6de5JetGgRLr30Uuy///7YeeedMW3aNLzwwgvS/TY2NuLxxx/HT37yExx66KHYfffdsXbtWqRSKTz22GNoamrq0Gesq6vDLbfcgqOOOgq77747dtttN/z9738HABx00EGh1wUAPPvss9y6TCYDAIGbnosxY8YAcG66Kixbtgx33nknJk6cyJG33gLZOTv66KMxc+ZMtLW1BbZfsWKFd10AwGuvvYbp06djjz32wF577YWzzjrL07oBwMcff4xzzjkHkydPxq677ooTTzxRGaFbv349Zs2ahR//+Mc4+OCDsdtuu2Ht2rVIp9P417/+hWw226HPuHLlSlx33XU49NBDseuuu2LSpEkeeZ4yZUrkdcEKVxcvXoy6ujoAwGGHHRYYV1JSgm9961sAHI2ViPvvvx8AcO655yKR6LAMtduRzWYxa9YsnHzyydh7772x0047YerUqbj22muxZs0a6ZgpU6agtrYW77zzDr766itceOGF+MY3voHddtsNxx57rJeyB5x03YwZM/DNb34TO++8Mw477DA89NBD0v22t7dj9uzZuPTSS3HEEUdg0qRJ3rUxYMAA6XmsqKiQfq8u3N/m+vp6fO973+N+E6+99loAwOTJk72/cRYuGVu/fj3Wr1+vPEYxWL9+PZ5//nkkk0mpLKU3oTf/Zuyyyy6YNGkSvv/97+O+++7r0t+M4447DrNmzYJlWcpx7sOQ7G8/Ch0iVIDz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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# add sex\n", "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " #.median()\n", " #.std()\n", " #.max()\n", " .plot()\n", ")" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
agehours_worked
sexFemaleMaleFemaleMale
year
197245.98754543.916771NaNNaN
197343.97496844.41797332.70779044.534737
197443.67680745.63860735.14625942.908276
197544.26503044.35970334.56156242.371231
197645.73970844.72563634.58688443.160633
197745.19640744.01598736.52185143.727459
197844.43827843.42055935.07552045.488323
198045.36552444.47581937.20879044.019650
198245.69654543.70026035.31311043.709553
198344.88508243.52110736.06046744.303535
198444.96436742.60636537.34066043.976246
198546.42925344.83090237.52256444.287170
198646.74644543.63650938.10209344.958057
198745.63152743.97671538.31956943.649738
198846.80214743.49686437.57787745.116329
198946.52462844.01363837.16628345.080170
199047.02213744.60265036.69718245.163895
199146.67312244.18081736.43537544.133484
199346.70774145.16520338.01642645.667358
199446.80082344.87432138.81883244.664139
199645.23062544.20778339.04465145.631687
199846.31687544.56677638.45521545.319736
200046.93687144.84000038.49728045.371525
200246.80615645.62990238.62528245.088966
200446.25802245.61363639.11060045.319553
200647.65586146.49673839.20340344.876713
200847.98987247.37863938.02124045.529781
201048.11207647.77977438.56810844.497208
201248.54059247.76836038.49458344.183567
201449.20344948.77943839.23373044.596256
201649.81892848.32940337.90398044.160355
201848.74071149.25548238.15471344.599998
\n", "
" ], "text/plain": [ " age hours_worked \n", "sex Female Male Female Male\n", "year \n", "1972 45.987545 43.916771 NaN NaN\n", "1973 43.974968 44.417973 32.707790 44.534737\n", "1974 43.676807 45.638607 35.146259 42.908276\n", "1975 44.265030 44.359703 34.561562 42.371231\n", "1976 45.739708 44.725636 34.586884 43.160633\n", "1977 45.196407 44.015987 36.521851 43.727459\n", "1978 44.438278 43.420559 35.075520 45.488323\n", "1980 45.365524 44.475819 37.208790 44.019650\n", "1982 45.696545 43.700260 35.313110 43.709553\n", "1983 44.885082 43.521107 36.060467 44.303535\n", "1984 44.964367 42.606365 37.340660 43.976246\n", "1985 46.429253 44.830902 37.522564 44.287170\n", "1986 46.746445 43.636509 38.102093 44.958057\n", "1987 45.631527 43.976715 38.319569 43.649738\n", "1988 46.802147 43.496864 37.577877 45.116329\n", "1989 46.524628 44.013638 37.166283 45.080170\n", "1990 47.022137 44.602650 36.697182 45.163895\n", "1991 46.673122 44.180817 36.435375 44.133484\n", "1993 46.707741 45.165203 38.016426 45.667358\n", "1994 46.800823 44.874321 38.818832 44.664139\n", "1996 45.230625 44.207783 39.044651 45.631687\n", "1998 46.316875 44.566776 38.455215 45.319736\n", "2000 46.936871 44.840000 38.497280 45.371525\n", "2002 46.806156 45.629902 38.625282 45.088966\n", "2004 46.258022 45.613636 39.110600 45.319553\n", "2006 47.655861 46.496738 39.203403 44.876713\n", "2008 47.989872 47.378639 38.021240 45.529781\n", "2010 48.112076 47.779774 38.568108 44.497208\n", "2012 48.540592 47.768360 38.494583 44.183567\n", "2014 49.203449 48.779438 39.233730 44.596256\n", "2016 49.818928 48.329403 37.903980 44.160355\n", "2018 48.740711 49.255482 38.154713 44.599998" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# unstack\n", "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " .unstack()\n", " #.median()\n", " #.std()\n", " #.max()\n", " #.plot()\n", ")" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sexFemaleMale
year
197245.98754543.916771
197343.97496844.417973
197443.67680745.638607
197544.26503044.359703
197645.73970844.725636
197745.19640744.015987
197844.43827843.420559
198045.36552444.475819
198245.69654543.700260
198344.88508243.521107
198444.96436742.606365
198546.42925344.830902
198646.74644543.636509
198745.63152743.976715
198846.80214743.496864
198946.52462844.013638
199047.02213744.602650
199146.67312244.180817
199346.70774145.165203
199446.80082344.874321
199645.23062544.207783
199846.31687544.566776
200046.93687144.840000
200246.80615645.629902
200446.25802245.613636
200647.65586146.496738
200847.98987247.378639
201048.11207647.779774
201248.54059247.768360
201449.20344948.779438
201649.81892848.329403
201848.74071149.255482
\n", "
" ], "text/plain": [ "sex Female Male\n", "year \n", "1972 45.987545 43.916771\n", "1973 43.974968 44.417973\n", "1974 43.676807 45.638607\n", "1975 44.265030 44.359703\n", "1976 45.739708 44.725636\n", "1977 45.196407 44.015987\n", "1978 44.438278 43.420559\n", "1980 45.365524 44.475819\n", "1982 45.696545 43.700260\n", "1983 44.885082 43.521107\n", "1984 44.964367 42.606365\n", "1985 46.429253 44.830902\n", "1986 46.746445 43.636509\n", "1987 45.631527 43.976715\n", "1988 46.802147 43.496864\n", "1989 46.524628 44.013638\n", "1990 47.022137 44.602650\n", "1991 46.673122 44.180817\n", "1993 46.707741 45.165203\n", "1994 46.800823 44.874321\n", "1996 45.230625 44.207783\n", "1998 46.316875 44.566776\n", "2000 46.936871 44.840000\n", "2002 46.806156 45.629902\n", "2004 46.258022 45.613636\n", "2006 47.655861 46.496738\n", "2008 47.989872 47.378639\n", "2010 48.112076 47.779774\n", "2012 48.540592 47.768360\n", "2014 49.203449 48.779438\n", "2016 49.818928 48.329403\n", "2018 48.740711 49.255482" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " .unstack()\n", " .age\n", ")" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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584G+9W9e3fmzp1b67GvvvqKt956i7Vr1+J2u+nduzdnnXUW//jHP7BarQ2/6TbU2s8bwOPx8P777/PZZ5+xfv167HY78fHxDB48mNGjR3P22WejlKr1Wq01H374IR988AEbNmwAYMCAAZx33nn8/e9/r/O69qAtnjXAZ599xgcffMCaNWtwOBx06dKFE088kWuuuYaMjIx6r+3In22tNcuWLWPu3LksWbKETZs2UV5eTkJCAkOGDGH06NH87W9/q/MzU1FRwUsvvcRXX33Frl27iI2N5cADD+SKK67giCOOqPfeCxYs4LXXXuP333/HbrfTrVs3TjvtNK6++mpiY2PrvK4p92xLbfGsm/LzBOB2u3njjTf45JNP2LZtG1arlUGDBjF27FhOPfXUJj2Pltbaz7up92vMPYVoS0prrdu6E6+//jpTp06tUd/QX3Jff/01t912G06nk4SEBPr06UNBQQG7d+8G4NZbb+Waa66pcd2NN95Ifn5+ne2uWLECt9vNmWeeyRNPPFHj+KOPPsr06dMB6NWrFzExMWzYsAGv18thhx3G9OnTsdlsDb7vttLaz7uyspL/+7//Y/HixQBkZmaSkZFBXl4eBQUFAJxyyik888wzmEyhX1r4fD5uueUWvvzyS8AfCANGYHzGGWfwxBNPtNuguLWftc/n47bbbuPzzz8HoEePHiQnJ7Np0ybsdjvJycnMmDGD7OzsWu/b0T/bv/76K+PGjTPKPXv2JDExkZ07d7J3714ATjzxRJ599tka76OoqIiLL76YzZs3Y7PZGDBgAEVFReTm5qKU4t577+WSSy6p9b4zZszgoYceQmtNVlYWqampbNiwAZfLRf/+/Zk5cybJyck1rmvKPdtaWzzrxv48ATidTi6//HKWLFmC2WxmwIABOBwOtm3bBsBVV13FbbfdFuFTaD2t/bybcr/G3lOINqXbgQ8++ECPGzdOP/HEE/rrr7/WTz31lM7OztaXXnppndds27ZNDx8+XGdnZ+spU6boyspK49gXX3yhhw4dqrOzs/X8+fMj6sv27dt1Tk6Ozs7O1r/88kuN419//bXOzs7WBxxwgP7222+N+g0bNuiRI0fq7OxsPXXq1Iju2dpa+3k/99xzOjs7Ww8bNkx/9913Icc+++wzPWTIEJ2dna0//PDDGte+9tprOjs7Wx9++OF66dKlRv3SpUv14YcfrrOzs/Wbb77ZmMfQKlr7Wb/44os6OztbH3TQQXrevHlGfUVFhb7tttt0dna2PuWUU7TT6axx7f7w2f7ll1/0yJEj9RtvvKELCgpCjn388cf6gAMO0NnZ2fqxxx6rce21116rs7Oz9TnnnKNzc3O11lr7fD797rvv6uzsbD148GC9evXqGtetWLFCDxo0SOfk5Oh3331X+3w+rbXWubm5+pxzztHZ2dl6/Pjxtfa3sfdsD9riWTfm56naAw88oLOzs/XIkSP1xo0bjfpvv/3W6Ou+fz+1J639vJtyv8beU4i21C4C4n3NmDGjwb/kpk6dqrOzs/Vf//pX7fF4ahx/5JFHdHZ2tr7gggsiuvezzz6rs7Oz9QknnKC9Xm+N42eddZbOzs7WTz/9dI1j8+fPNwKKwsLCiO7bllr6eY8ZM0ZnZ2frhx56qNa27777bp2dna1vuOGGkHqXy6WPOOKIOoPlDz74QGdnZ+ujjjpKu93uht5mu9CSz9rr9eojjzxSZ2dn6xdeeKHGdQ6HQ59wwgk6Oztbv/vuuzWO7w+f7bKyMu1yueo8/vzzzxu/YAX/fK9atUpnZ2frQYMG6S1bttS47vbbb68zsL3uuut0dna2vuOOO2oc27x5sx40aJDOzs7Wa9asCTnWlHu2B23xrPcVzs+T1lrn5+cbv0j++uuvNY5XB9bnnHNOg/dsK639vBt7v6bcU4i21GEX1S1ZsgSAk08+GbPZXOP46aefDsCyZcvYsWNHWG1qrZk9ezYAZ599do2v77ds2cLatWsBuOCCC2pcf9RRR9G7d29cLhffffdd2O+lI2jK83Y6nYD/K/ja9O7dG/DP7wu2cOFCiouLiY2N5W9/+1uN68466yxiY2MpLCxk0aJFEb6j9quxz3rz5s0UFRUBcNppp9W4Ljo6mpNOOgnwzzEOtr98tuPj4+ud53z88ccDsHfvXuNZgX/eNMCRRx5pfB6DVT+TefPmYbfbjfqKigp++uknAM4///wa1/Xp04cjjzwSwJj209R7thet/aybYu7cubjd7pA/j2AXXnghAKtWrTKmULQ3rf28G3u/ptxTiLbUYQPikpISALp06VLr8aysLOP18uXLw2pz0aJFbN++HYAxY8bUOF7dTs+ePeu874gRIwD4/fffw7pnR9GU5z148GDAH8DVpjoAHD58eEh9dTvDhw+vdY6azWZj2LBhtd6zI2vss66e1xfOtX/88Qc+n69GO/v7Z7uystJ4HR0dbbyufv+HHnporddVfwadTidr1qwx6tesWYPL5cJms9X4/Far67k19p4dRXM/66aovmf1n8W+unTpQo8ePULO7Wha+3nXdb+WvKcQLanDBsQJCQkA5OXl1Xo8NzfXeL1p06aw2vz4448B/1+atf1Wu2XLFqDukc7gY5s3bw7rnh1FU573tddeS3x8PJ999hmPP/4427dvx+l0snXrVu6//35++OEH+vfvz9ixY0Ou66zPu7HPOjEx0Xjd0LWVlZUhmVY6y7OuXmw4aNAg4uPjjfqG3r/VaqVr165A6Puvft2tW7c6R9Pqem6NvWdH0dzPuik6w+e7tZ93XfdryXsK0ZI6bEBcPTL43Xff4fV6axwP/nqytLS0wfYqKiqMa84555xaz6keuUtKSqqznepj4dyzI2nK8+7fvz/vvfcep5xyCq+99honn3wyw4cP59RTT+X999/n6quv5r333qvxl2pnfd6NfdZ9+/Y1nmH1V5bBnE4nP/zwQ63XdoZnvXLlSt59910Arr766pBjjX3/kVxXfW5T79kRtMSzbor9+VlD6z/v+u7XUvcUoqV12ID4wgsvxGw2s379ev71r3+FfH0ze/Zs3nzzTaPscDgabO+rr77CbrcTExNjzNHcV/Vc2PrmVVV/tR/cn/1BU5/3rl27yM/Px+v1kp6eztChQ0lOTsbtdvP555/z888/17imsz7vxj5ri8VizM17/vnn+eabb4xj5eXl3HnnnezatavWa/f3Z11QUMANN9yAx+PhlFNO4Ywzzgg53tj3H8l11ec29Z7tXUs966bYX581tP7zbuh+LXFPIVpDu9iYozEGDRrE3XffzYMPPsgHH3zAp59+Sp8+fcjLy6O4uJjhw4fjcrlYu3YtcXFxDbZXPV3i1FNPrTFSWS0qKgqoufgrmMvlAmrOqeromvK8v/jiCyZMmEBycjKvvvoqxx57rHHsk08+4Z577uGWW27BbDaHJMfvrM+7Kc/6pptu4o8//mDRokWMHz+e9PR00tLS2Lx5My6Xi/PPP5/3338fIORzvj8/67KyMq666ip27drF0KFDeeSRR2qcExUVhcPhiPj9R/Lcqs9t6j3bs5Z81k2xv36+W/t5h3O/5r6nEK2lw44QA1x66aW89dZbjBo1itjYWDZu3EhCQgLXX389M2bMMH7g0tPT621n+/btRpaCuqZLQGCO5r5ffQarPhY8n3N/0Zjn7Xa7efjhh/H5fNx9990hwTD4M0Vce+21aK158sknQ4515ufd2M92VFQU06dPZ+LEiQwdOpSKigq2b9/OsGHDeP755/n73/9unBt87f76rCsqKrjyyitZvXo1AwcO5NVXX631F97Gvv+6pkPUdt2+Xx/vb8+8pZ91U+xvzxpa/3mHe7/mvKcQranDjhBXO/TQQ2tdyepyuYyMEdVzMusye/ZstNZ079691pQ81fr27QvA1q1b6zynOmVPnz59Gup6hxTp8966dauxK+AxxxxTa5vHHXcczzzzDJs3b6a8vNz4S7b6GXbW593Yz7bNZmPcuHEhu0xV+/DDDwHo2rVrSEC8P362HQ4H11xzDcuXL6dPnz689tprpKSk1Hpu9Qh8Xe/f7XYb002C33/16127duF2u2v9iriu59bYe7ZHrfGsm6JPnz4sXbp0v/l8t/bzjuR+zXVPIVpbhx4hrs+PP/6I2+0mOTm5zlQ7EJp7ePTo0fVuAXzggQcCsGPHjjpX8VenEDvooIMa1/EOqq7nXVFREVE71SOfEHiGK1asCKkPPnfFihUAHHzwwY3odccU7me7NnPnzgVg1KhRIfX722fb6XRy3XXXsWjRIrp3787rr79ORkZGnedXv6fq97ivP/74A7fbTVRUlJFGEPwpBa1WKy6Xiz/++KPWa+t6bo29Z3vTWs+6KarvuXTp0lqP5+XlGTm92/vnu7Wfd6T3a457CtEW9suA2OVy8eyzzwJw8cUX15rDttrChQvZsWMHSql6p0uAfxQtOzsbgPfee6/G8V9//ZWtW7ditVprBBz7s/qed8+ePY1fMn755Zdar6/e2CA5OTlk1OGII44gOTkZu93Op59+WuO6Tz75BLvdTmpqKocddlizvZ/2LJLP9r6WLl3K3LlzsVqtXHzxxSHH9qfPttvt5oYbbuDXX3+lS5cuvPHGG0aKp7r85S9/AeC3336rdVSr+pkcf/zxIfO24+PjjWlA1XOzg23ZsoUFCxYANTdLaew925PWfNZNMWrUKKxWa8ifR7DqjAlDhgypNeVme9Haz7sx92vqPYVoKx06IP7www9r/LBt3bqVq6++mrVr1zJgwACuvfbaetuoXkx32GGH0bNnzwbvOX78eABefvllY7QN/PlgJ02aBPgDldTU1IjeS0fQmOedmprKCSecAMDDDz9cIyj+5JNPeOGFFwD/7oDBI/RWq5VrrrkGgMceeyxkY49ly5bx+OOPA/48xxZLh5/9E6Kxn+3c3Fxmz54dsvuTz+fjm2++4brrrkNrzXXXXUf//v1rXLs/fLa9Xi8TJkxg3rx5ZGRk8MYbb4T1cz106FBOOukkvF4vt9xyC3v27AH83yC99957zJkzB5PJxHXXXVfj2uuvvx6lFHPmzOG9995Daw3Anj17uPXWW/H5fJx88skMGjSo2e7ZHrTFs26s9PR0IwPLPffcE5K/e+7cubzyyisA/POf/2y2eza31n7ejb1fU+4pRFtSuvpv7za0e/duRo8ebZRdLhd2ux2LxRIyaf/KK6/kqquuMspnn302a9euJT09naysLMrLy42E4Dk5ObzyyitkZmbWed+KigqOPfZY7HY7U6dOrXV3uto8/PDDvPHGG4A/8XhsbCzr16/H6/UyYsQIXnvttRorytuT1n7eubm5XHrppca814yMDDIzM9m5c6exu9pBBx3E9OnTa4wW+Hw+brrpJr7++msABgwYAMCGDRsA/6jbtGnTamyz3V609rNes2YNo0ePNhLfJyUlsWPHDoqLi1FKcfnll3PnnXfW2d+O/tn+7LPPmDBhAgDdu3evc9c9gHvvvZchQ4YY5aKiIi666CK2bNmCzWZjwIABFBcXs3v3bpRS3HPPPTU2j6n2+uuv88gjj6C1pmvXrqSkpLBhwwZcLhd9+/Zl5syZtf4i0ZR7trW2eNaN/XkCf3qvcePGsWzZMsxmMwMHDsRutxtzh6+44op6fzbaWms/76bcr7H3FKIttYthNa/XG7LtbDWPxxNSv2++wksvvZSvvvqKP//8k3Xr1hEbG8uIESM444wzOP/88+vNgQiB3MOxsbHGVzzhuPvuuzn44IOZOXMma9asYc+ePfTv35+zzjqLcePGNXjfttbazzsrK4vZs2fz1ltv8d1337Fp0ybWrl1LfHw8hx12GKeffnqd15tMJp555hnef/99PvjgAzZu3Aj4F5Odf/75nHfeefXO+25rbfGsx40bx6JFi9i5cye7d+8mLS2NM888k4svvrjBOccd/bMdPNd8586dIbvx7ausrCyknJqaykcffcTLL7/Ml19+yYYN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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " .unstack()\n", " .age\n", " .plot()\n", " .legend(bbox_to_anchor=(1,1))\n", ")" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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YVjCn7opMhERka7hD3gIGG93h9FmNsuJ3RbdafUfcsghJCcn8+GHH3LLLbcQExMDwPfff8/mzZuZMmUKKSkpzd5/8803c+ihh5KRkREqCwQCfPTRR1x//fXccMMN7L///qF6t+fvf/87n3/+OePHj+f2229n9OjRAHi9Xh5//HH+/e9/c8011/DBBx+0GFdvoYS4GwxLnIbTlsiyrTdi8OO2p7Fr/zs1blhERHZoKwvuZmPpf6mbN9O72BiacCZjUq/vlNqdTidHH300L774Ih999BHHH388AHPmzAEIHTfn9NNPb1Rms9k48sgjWblyJU888QSffvopv//975u4O9yaNWuYM2cOKSkpPPHEE6SmpobF+Ze//IVff/2Vjz/+mFdffZULL7yw9W+0h1JC3E0Gxh9LjGs4Wyu/ZFDccbjsvf+3KxERkZZsKp1N70yGAQJsKp3daQkxBJPeF198kblz53L88cfj8Xj44IMPSEpK4tBDD93u/atWreKDDz5g9erVlJSU4PP5ACgsLARgxYoVrUqIP/zwQ4wxTJkyJSwZbmjq1Kl8/PHHfPvtt0qIpWOS3ONJco/v7jBERES6xJCEM3ptD7GFnSEJZ3RqG7vtthsjR45k0aJF5OTk8O2331JRUcGZZ56Jy+Vq8d57772XZ599tslVKuoUFxe3Ko5Vq1YBwYl6TfU8A5SVlQGQk5PTqjp7OiXEIiIi0iXGpF5PZvLlGkPcguOPP5777ruPt956i0WLFoXKWvLOO+8wc+ZM3G43V155JQcddBAZGRlER0djWRavv/46N954Y6jHeHvqkt2srCyysrJavLaqqqpVdfZ0SohFRESky9ht0djp/MSytzr22GN54IEHmD17Nnl5eYwYMYLx41v+NLluZYrrrruOM888s9H51vYM16mbeHfNNddw3nnntene3krLromIiIj0EOnp6ey///7k5OQQCAS22zsMsHnzZgD22muvJs//9NNPbYqhbvOP1atXt+m+3kwJsYiIiEgPMm3aNPbbbz/2228/jj322O1eHx0d7HHPz89vdG7t2rX873//a1P7Rx55JBCcXJednd2me3srJcQiIiIiPcihhx7Kc889x3PPPceAAQO2e31dz/ADDzxAXl5eqPyXX35hxowZ2GxtS/dGjx7NiSeeiMfj4eyzz+bbb79tdM3atWt5+OGHWbBg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fMHHH3/MsmXLyMvLo7i4GKfTyeDBg9lvv/0466yzGDp0aETfXFcyVR9jimt7t239sPp/td3k1RgDpghwBJNey9ni9SIiIiISeRHZulkgUHo3VAbHQeM+Elvyw90bkIiIiIi0SsSXXeuzvD+EXlpNTKgTERERkZ5JCXEEmEAleFfUFyghFhEREek1lBBHgncJ9WsFx4JjVHdGIyIiIiJtoIQ4AsLWH3buqbWCRURERHoRJcSR4G2w/rCGS4iIiIj0KkqIO8gYL3h/qi9QQiwiIiLSqygh7ijvCjCe2gMnOMd3azgiIiIi0jZKiDvK23D88G5Ylrv7YhERERGRNlNC3EFhE+o0XEJERESk11FC3AHGBKCmwYYczondGI2IiIiItIcS4o7w/wamuPbAApcSYhEREZHeRglxRzQcLuHIxLIldF8sIiIiItIuSog7QOOHRURERHo/JcQd0SAhtpxKiEVERER6IyXE7WT82RDIri9QD7GIiIhIr6SEuL0arC6BfQiWPb37YhERERGRdlNC3E5h44e13JqIiIhIr6WEuL0a7FBnabiEiIiISK+lhLgdTKAIfKvrC5QQi4iIiPRaSojbo2Zx/WtbKth36r5YRERERKRDlBC3w7bjhy3L6r5gRERERKRDlBC3h8YPi4iIiOwwlBC3kTEe8C6vL1BCLCIiItKrKSFuq5qfAF/wtRULjtHdGo6IiIiIdIwS4rbyNhw/vDuW5ei+WERERESkw5QQt1HDCXUaPywiIiLS+ykhbiv/xvrXTiXEIiIiIr2dEuK2ijoq+LdzH02oExEREdkBWMYY091B9DYmUAJWgtYfFhEREdkBKCEWERERkT5NQyZEREREpE9TQiwiIiIifZoSYhERERHp05QQi4iIiEifpoRYRERERPo0JcQiIiIi0qcpIRYRERGRPk0JsYiIiIj0aUqIRURERKRPU0IsIiIiIn2aEmIRERER6dOUEIuIiIhIn6aEWERERET6NCXEIiIiItKnKSEWERERkT5NCbGIiIiI9GlKiEVERESkT1NCLCIiIiJ9mhJiEREREenTlBCLiIiISJ+mhFhERERE+jQlxCIiIiLSpykhFhEREZE+TQmxiIiIiPRpSohFREREpE9TQiwiIiIifZqjuwOQyMvPz+err75i2bJlLF26lJUrV1JdXc0+++zDrFmzWrx37dq1PP3003zzzTfk5+cTHx/P+PHj+b//+z/233//Zu/z+Xy8+uqrzJs3j9WrV1NZWUlcXBxjxozh+OOP57jjjsOyrCbvNcbw+uuv89prr7FmzRoARo4cyR//+EdOPvnkZu/rabrjuQPMmzeP1157jZUrV+LxeEhPT+fQQw/lggsuoH///i3e++GHH/Liiy/yyy+/4PV6GTZsGMceeyx/+tOfcDqdbX4GXc0Yw48//siCBQv44Ycf+O233ygvLyc+Pp6xY8dy/PHH84c//KHZr6GKigqeeuopPvzwQ7Kzs4mJiWHChAmce+657Lvvvi22/c033/Dss8/y008/UVlZycCBAznyyCOZPn06MTExzd7XkTZ7iu547h35/wXg9Xp5/vnnefvtt9m4cSNOp5PRo0czbdo0jjjiiA49j67S1c+9o+21p02R7mIZY0x3ByGR9dxzz3H33Xc3Kt/eD46PPvqIq6++murqauLj4xk+fDhbt25ly5YtAFx55ZVccMEFje6rqqriz3/+M99//z0AaWlp9O/fn9zcXLZu3QrA4YcfzsMPP4zNFv6hRCAQ4IorruCDDz4AgokwEEqMjz76aO6///5ekRR39XMPBAJcffXVvPvuuwAMHjyYpKQkfvvtNyorK0lKSmLWrFlkZmY22e69997LzJkzARg6dCjR0dGsWbMGv9/P3nvvzcyZM3G5XG1+Dl1p4cKFnH322aHjIUOGkJCQQFZWFsXFxQAceuihPPLII43eS2FhIWeccQbr1q3D5XIxcuRICgsLycnJwbIsbr75Zs4888wm2501axZ33nknxhgGDBhASkoKa9asoaamhhEjRjB79mySkpIa3deRNnuS7nju7f3/BVBdXc0555zDDz/8gN1uZ+TIkXg8HjZu3AjA+eefz9VXX93Gp9D1uvq5d6S99rYp0m2M7HBee+01c/bZZ5v777/ffPTRR+ahhx4ymZmZ5qyzzmr2no0bN5rx48ebzMxMc9ttt5mqqqrQuffee8+MGzfOZGZmmq+//rrRvY8++qjJzMw0u+22m5k/f37YuXnz5pmxY8eazMxM8/rrrze699lnnzWZmZlmn332MYsXLw6VL1682Oyzzz4mMzPTvPDCC+15DF2uq5/7k08+aTIzM83uu+9uPvvss1B5RUWFufrqq01mZqY5/PDDTXV1daN7P/roI5OZmWl23XVX88knn4TK16xZYyZPnmwyMzPN3Xff3d5H0WW++uorM3nyZPP888+brVu3hp2bM2eO2XXXXU1mZqb5xz/+0ejeCy+80GRmZpoTTjjB5OTkGGOMCQQC5uWXXzaZmZlmzJgxZsWKFY3uW7p0qRk9erQZNWqUefnll00gEDDGGJOTk2NOOOEEk5mZaS655JIm421vmz1Ndzz39vz/qnP77bebzMxMM3nyZLN27dpQ+SeffBKKddvvXT1RVz/3jrTX3jZFuosS4j5g1qxZ2/3Bcffdd5vMzEzz+9//3vh8vkbn77nnHpOZmWlOPfXURudOPPFEk5mZae68884m677hhhtMZmamufTSS8PKa2pqzL777ttssvzaa6+ZzMxMs99++xmv17u9t9njdOZz9/v9ZtKkSSYzM9M88cQTje7zeDzmkEMOMZmZmebll19udP7YY481mZmZ5l//+lejc19//XUoWS4oKGjNW+02ZWVlpqamptnzjz/+eOgXLr/fHypfvny5yczMNKNHjzbr169vdN8111zTbGI7Y8YMk5mZaa699tpG59atW2dGjx5tMjMzzcqVK8POdaTNnqY7nvu2WvP/yxhj8vPzQ79YLly4sNH5usT6hBNO2G6b3a2rn3t72+tImyLdRZPqBIAffvgBgKlTp2K32xudP+qoowD48ccf2bx5c9i56upqIPixe1OGDRsGBMfwNfTtt99SVFRETEwMf/jDHxrdd+yxxxITE0NBQQHfffddG99R79De575u3ToKCwsBOPLIIxvdFxUVxWGHHQYExxg3tH79en755RcATj311Eb37rfffgwbNoyamhrmz5/fnrfVZeLi4loc63zwwQcDUFxcHHpeEBw7DTBp0qTQ12dDdc/ls88+o7KyMlReUVHBF198AcApp5zS6L7hw4czadIkgNAwoI622RN19XPviAULFuD1esP+bRo67bTTAFi+fHloCEVP1dXPvb3tdaRNke6ihFgAKCkpASA9Pb3J8wMGDAi9XrJkSdi5MWPGAMGkrSl1Sd/48ePDyuvqGT9+fJPjz1wuF7vttluTbe4o2vvc68bvteben3/+mUAg0KieIUOGNHvvxIkTAfjpp59afgM9XFVVVeh1VFRU6HXdM9hrr72avK/ua7K6upqVK1eGyleuXElNTQ0ul6vR13Od5p5de9vsjSL93Duirs26f5dtpaen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9jrSpkh3sUzdd3PZYWzZsoXjjz8+dFxTU0NlZSUOhyNsAsR5553H+eefHzo+7rjj+OWXX+jXrx8DBgygvLw8tLj6qFGjePrpp0lLS2vUXk5ODmeddVZorGv//v1JS0sjKysrtKPa7rvvzsyZMxv1BAQCAS677DI++ugjAEaOHAnAmjVrgGAv24MPPojN1vN/d+vq575y5UqOP/740AL3iYmJbN68maKiIizL4pxzzuG6665rNt677rqL559/Hggunh8TE8Pq1avx+/1MnDiRZ599ttFKCT3NvHnzuOqqqwAYNGhQszvvAdx8882MHTs2dFxYWMjpp5/O+vXrcblcjBw5kqKiIrZs2YJlWdx4442NNpOp89xzz3HPPfdgjCEjI4Pk5GTWrFlDTU0NO+20E7Nnz27yl4mOtNmTdMdzb+//Lwgu63X22Wfz448/Yrfb2WWXXaisrAyNHT733HNb/L/SU3T1c+9Ie+1tU6S77Ljdbn2Y3+8P29q3js/nCyvfdu3Hs846iw8//JBff/2VVatWERMTw8SJEzn66KM55ZRTml1PcsCAAcydO5cXX3yR+fPn89tvv/HLL78QFxfH3nvvzVFHHdXs/TabjYcffphXX32V1157jbVr1wLBCWSnnHIKf/zjH8N6lXuy7njuZ599Nt999x1ZWVls2bKF1NRUjjnmGM4444ztjjm+4YYb2GOPPZg9ezYrV64kLy+PESNGcOyxx3L22We3uH5oT9Fw7HlWVlbYjnzbKisrCztOSUnhjTfe4D//+Q8ffPABa9asISYmhoMPPpg///nPTJo0qdm6zj77bEaNGsXMmTP5+eefKSgoYODAgRx55JFMnz692Y+AO9JmT9Idz729/78guKzXCy+8wHPPPcc777zD+vXrcTqd7LPPPpx11lmhj/d7uq5+7h1pr71tinQX9RCLiIiISJ/W8z+HFhERERHpREqIRURERKRPU0IsIiIiIn2aEmIRERER6dOUEIuIiIhIn6aEWERERET6NCXEIiIiItKnKSEWERERkT5NCbGIiIiI9GlKiEVERESkT1NCLCIiIiJ9mhJiEREREenTlBCLiIiISJ+mhFhERERE+jQlxCIiIiLSpykhFpFGSkpKmDBhAqNGjeK9995r8dqHHnqIUaNGMWXKFIwxYed++OEHrr76ag477DB22203Jk6cyMknn8xTTz1FRUVFk/V5PB7mzZvHtddey3HHHcekSZPYddddOfDAA7nooov47LPPmo3lzTffZNSoUUyePBmAb775hosuuogDDzyQMWPG8Ne//rWNT0JERPoCJcQi0khiYiJHHXUUAK+++mqz1/n9ft58800A/vjHP2JZFgCBQIA77riDM844g3feeYfs7GwcDgcej4elS5dy//33c9JJJ5GVldWozvfff5+rrrqKt956i1WrVuHz+XA4HOTn5zN//nymT5/Ovffeu9338Pzzz3P22Wczf/58qqqqsNvt7XkUIiLSByghFpEmnX766UCwl3XTpk1NXvPZZ5+Rm5uLw+HgpJNOCpU//PDDzJo1i9TUVG655RYWLVrEjz/+yE8//cQLL7zA2LFjWbduHZdeeimBQCCszoSEBM4991xmz57Njz/+yPfff8+SJUv44osvuPTSS3E6ncycOZP58+c3G/vWrVu59957OeGEE/j000/5/vvv+emnn7jooosi8GRERGRHo4RYRJo0YcIExowZgzGm2V7iuvLJkyfTv39/ADZv3sxTTz1FVFQUM2fO5MwzzyQpKQkAp9PJvvvuy6xZsxgwYADLly9nwYIFYXVOnTqV6667jokTJxIdHR0qT0tL45JLLuGKK64AYNasWc3GXl1dzZQpU7j77rvJyMgAwG63M3To0PY9DBER2aEpIRaRZtX1Es+ZMwev1xt2Ljc3l88//xyAU089NVQ+Z84c/H4/Bx10EKNHj26y3ri4OKZOnQrAF1980aaYDj30UACWLFmC3+9v9rrp06e3qV4REem7HN0dgIj0XMcccwz33nsv+fn5/O9//+OII44InXv99dfx+/0MHjyYAw44IFS+ePFiAL766quw8m1VVlYCkJ2d3ejc1q1bmT17Nl999RXr16+nrKysUfLr8XgoKSkhJSWl0f1RUVGMGzeubW9WRET6LCXEItKs2NhYjj32WF566SVeeeWVUEIcCAR44403ADjllFNCk+kA8vLygGDCW5f0tqSqqirs+Mcff2T69OmUlpaGymJiYoiOjsayLPx+P0VFRUAwKW5KUlISNps+ABMRkdZRQiwiLTr99NN56aWX+Prrr9m8eTODBw/myy+/JCsrC4fDwYknnhh2fV1P7vnnn8/VV1/dprZ8Ph9XXXUVpaWljBkzhiuuuIKJEycSFxcXumbjxo0cfvjhAI2WeaujFSVERKQt1IUiIi0aNWoUe+yxB4FAgNdffx2A1157DYApU6aEJtPVqTtuaijE9ixZsoSsrCzsdjtPPvkkhxxySFgyDJCfn9+etyEiItIsJcQisl11k+veeOMNcnNz+d///gcEh0tsa8899wTg66+/prq6uk3tbNmyBYCUlBTS09ObvGbhwoVtqlNERGR7lBCLyHYdddRRJCUlkZeXx1VXXYXX6200ma7OSSedhMPhoKioiIcffrjFemtqasJ2rIuPjweCk+q2bt3a6PqcnJwWl1sTERFpDyXEIrJdLpcrNFb4u+++AxpPpqszdOhQZsyYAcDTTz/Ntddey6+//ho67/P5WLlyJY8++ihHHHEEK1euDJ2bOHEiMTExGGO4/PLLWbduHRAcl/zFF18wbdq0TnuPIiLSd2lSnYi0ymmnncazzz6LMabJyXQNXXzxxfj9fh5//HHeeust3nrrLaKiooiKimq0hFrDpDo+Pp5rr72WW2+9le+++44jjzySmJgY/H4/1dXVJCcnc/fdd4cSbhERkUhQQiwirTJs2DDGjBnDihUrmpxM15BlWVx22WUcddRRvPTSSyxatIgtW7ZQXl5OQkICw4cPZ8899+Twww9njz32CLv39NNPZ+DAgTz99NMsW7YMv99Peno6hxxyCOeff36jDUJEREQ6yjLNrVskItJAfn4+hx56KD6fj2eeeYYDDzywu0MSERGJCI0hFpFWefnll/H5fAwbNqzFHehERER6GyXEIrJdS5cuZebMmQCcffbZTU6mExER6a00hlhEmjV58mRqampCm2GMHTuWP/7xj90clYiISGQpIRaRZmVlZQHB3ecOOuggrrrqKpxOZzdHJSIiElmaVCciIiIifZrGEIuIiIhIn6aEWERERET6NCXEIiIiItKnKSEWERERkT5NCbGIiIiI9GlKiEVERESkT1NCLCIiIiJ9mhJiEREREenT/h+cqpva9Iyj6wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's try looking at hours worked\n", "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .mean()\n", " .unstack()\n", " .hours_worked\n", " .plot()\n", " .legend(bbox_to_anchor=(1,1))\n", ")" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
agehours_worked
minmaxmedianminmaxmedian
yearsex
1972Female18.089.045.0NaNNaNNaN
Male18.089.044.0NaNNaNNaN
1973Female18.086.042.01.080.037.0
Male18.089.043.00.089.040.0
1974Female18.089.041.08.089.040.0
........................
2014Male18.089.050.01.089.040.0
2016Female18.089.050.01.089.040.0
Male18.089.048.01.089.040.0
2018Female18.089.047.51.089.040.0
Male18.089.049.01.089.040.0
\n", "

64 rows × 6 columns

\n", "
" ], "text/plain": [ " age hours_worked \n", " min max median min max median\n", "year sex \n", "1972 Female 18.0 89.0 45.0 NaN NaN NaN\n", " Male 18.0 89.0 44.0 NaN NaN NaN\n", "1973 Female 18.0 86.0 42.0 1.0 80.0 37.0\n", " Male 18.0 89.0 43.0 0.0 89.0 40.0\n", "1974 Female 18.0 89.0 41.0 8.0 89.0 40.0\n", "... ... ... ... ... ... ...\n", "2014 Male 18.0 89.0 50.0 1.0 89.0 40.0\n", "2016 Female 18.0 89.0 50.0 1.0 89.0 40.0\n", " Male 18.0 89.0 48.0 1.0 89.0 40.0\n", "2018 Female 18.0 89.0 47.5 1.0 89.0 40.0\n", " Male 18.0 89.0 49.0 1.0 89.0 40.0\n", "\n", "[64 rows x 6 columns]" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Multiple aggregates\n", "(gss2\n", " .groupby(['year', 'sex'])\n", " [['age', 'hours_worked']]\n", " .agg(['min', 'max', 'median'])\n", " \n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Summary\n", "\n", "* Correct types save space and enable convenient math, string, and date functionality\n", "* Chaining operations will:\n", " * Make code readable\n", " * Remove bugs\n", " * Easier to debug\n", "* Don't mutate (there's no point). Embrace chaining.\n", "* ``.apply`` is slow for math\n", "* Aggregations are powerful. Play with them until they make sense\n", "* Upcoming course https://maven.com/matt-harrison/data-analysis-using-pandas\n", "\n", "Follow me on Twitter ``@__mharrison__``\n", "\n", "Book giveaway!\n" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import random\n", "random.randrange(1,13)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "lines_to_next_cell": 2, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "encoding": "# -*- coding: utf-8 -*-", "formats": "ipynb,py:light" }, "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.10" } }, "nbformat": 4, "nbformat_minor": 4 }