{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "path_data = '../../data/'\n", "\n", "import pandas as pd\n", "import numpy as np\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "# As of Jan 2017, this census file is online here: \n", "data = 'http://www2.census.gov/programs-surveys/popest/datasets/2010-2015/national/asrh/nc-est2015-agesex-res.csv'\n", "\n", "# A local copy can be accessed here in case census.gov moves the file:\n", "# data = path_data + 'nc-est2015-agesex-res.csv'\n", "\n", "full_census_table = pd.read_csv(data)\n", "# pandas dataframe nuilt upon the 'data' file\n", "\n", "partial_census_table = full_census_table[['SEX', 'AGE', 'POPESTIMATE2010', 'POPESTIMATE2014']]\n", "# df built on 4 columns from full_census_table \n", "\n", "us_pop = partial_census_table.rename(columns={'POPESTIMATE2010':'2010','POPESTIMATE2014':'2014'})\n", "# partial census df with renamed columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example: Trends in Gender\n", "\n", "We are now equipped with enough coding skills to examine features and trends in subgroups of the U.S. population. In this example, we will look at the distribution of males and females across age groups. We will continue using the `us_pop` table from the previous section." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SEXAGE20102014
00039513303949775
10139578883949776
20240908623959664
30341119204007079
40440775514005716
\n", "
" ], "text/plain": [ " SEX AGE 2010 2014\n", "0 0 0 3951330 3949775\n", "1 0 1 3957888 3949776\n", "2 0 2 4090862 3959664\n", "3 0 3 4111920 4007079\n", "4 0 4 4077551 4005716" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "us_pop.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we know from having examined this dataset earlier, a [description of the table](http://www2.census.gov/programs-surveys/popest/datasets/2010-2015/national/asrh/nc-est2015-agesex-res.pdf) appears online. Here is a reminder of what the table contains. \n", "\n", "Each row represents an age group. The `SEX` column contains numeric codes: `0` stands for the total, `1` for male, and `2` for female. The `AGE` column contains ages in completed years, but the special value `999` represents the entire population regardless of age. The rest of the columns contain estimates of the US population." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Understanding `AGE` = 100\n", "As a preliminary, let's interpret data in the final age category in the table, where `AGE` is 100. The code below extracts the rows for the combined group of men and women (`SEX` code 0) for the highest ages." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SEXAGE20102014
970976889383089
980984703759726
990993217841468
10001005441071626
\n", "
" ], "text/plain": [ " SEX AGE 2010 2014\n", "97 0 97 68893 83089\n", "98 0 98 47037 59726\n", "99 0 99 32178 41468\n", "100 0 100 54410 71626" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# note use of boolean '&' operator - not 'and'\n", "# boolean 'or' = | (aka a 'pipe' character)\n", "\n", "us_pop[(us_pop['SEX']== 0) & ((us_pop['AGE'] >= 97) & (us_pop['AGE'] <= 101))]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not surprisingly, the numbers of people are smaller at higher ages – for example, there are fewer 99-year-olds than 98-year-olds. \n", "\n", "It does come as a surprise, though, that the numbers for `AGE` 100 are quite a bit larger than those for age 99. A closer examination of the documentation shows that it's because the Census Bureau used 100 as the code for everyone aged 100 or more. \n", "\n", "The row with `AGE` 100 doesn't just represent 100-year-olds – it also includes those who are older than 100. That is why the numbers in that row are larger than in the row for the 99-year-olds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Overall Proportions of Males and Females\n", "We will now begin looking at gender ratios in 2014. First, let's look at all the age groups together. Remember that this means looking at the rows where the \"age\" is coded 999. The table `all_ages` contains this information. There are three rows: one for the total of both genders, one for males (`SEX` code 1), and one for females (`SEX` code 2)." ] }, { "cell_type": "code", "execution_count": 8, "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", "
SEXAGE2014
1010999318907401
2031999156955337
3052999161952064
\n", "
" ], "text/plain": [ " SEX AGE 2014\n", "101 0 999 318907401\n", "203 1 999 156955337\n", "305 2 999 161952064" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "us_pop_2014 = us_pop.drop(columns=['2010'])\n", "all_ages = us_pop_2014[us_pop_2014['AGE'] == 999]\n", "all_ages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Row 0 of `all_ages` contains the total U.S. population in each of the two years. The United States had just under 319 million in 2014.\n", "\n", "Row 1 contains the counts for males and Row 2 for females. Compare these two rows to see that in 2014, there were more females than males in the United States. \n", "\n", "The population counts in Row 1 and Row 2 add up to the total population in Row 0. \n", "\n", "For comparability with other quantities, we will need to convert these counts to percents out of the total population. Let's access the total for 2014 and name it. Then, we'll show a population table with a proportion column. Consistent with our earlier observation that there were more females than males, about 50.8% of the population in 2014 was female and about 49.2% male in each of the two years. \n", "\n", "**N.B.** Try - in this case we are setting a value based on a 'slice' of a 'copy' which could lead to problems at some point in further calculations. As this is a practice example we can select the 'mode.chained_assignment' to value None otherwise Pandas will helpfully warn us that there may be a problem now or later. " ] }, { "cell_type": "code", "execution_count": 9, "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", "
SEX AGE 2014 Proportion
1010999318907401100.00%
203199915695533749.22%
305299916195206450.78%
" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pop_2014 = all_ages['2014'].iloc[0]\n", "\n", "all_ages['Proportion'] = all_ages['2014']/pop_2014\n", "all_ages.style.format({'Proportion':\"{:.2%}\"})\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proportions of Boys and Girls among Infants" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we look at infants, however, the opposite is true. Let's define infants to be babies who have not yet completed one year, represented in the row corresponding to `AGE` 0. Here are their numbers in the population. You can see that male infants outnumbered female infants." ] }, { "cell_type": "code", "execution_count": 10, "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", "
SEXAGE2014
0003949775
102102020326
204201929449
\n", "
" ], "text/plain": [ " SEX AGE 2014\n", "0 0 0 3949775\n", "102 1 0 2020326\n", "204 2 0 1929449" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "infants = us_pop_2014[us_pop_2014['AGE'] == 0]\n", "infants" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we can convert these counts to percents out of the total numbers of infants. The resulting table shows that in 2014, just over 51% of infants in the U.S. were male. " ] }, { "cell_type": "code", "execution_count": 11, "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", "
SEX AGE 2014 Proportion
0003949775100.00%
10210202032651.15%
20420192944948.85%
" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "infants_2014 = infants['2014'].loc[0]\n", "\n", "infants['Proportion'] = infants['2014']/infants_2014\n", "\n", "infants.style.format({'Proportion':\"{:.2%}\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, it has long been observed that the proportion of boys among newborns is slightly more than 1/2. The reason for this is not thoroughly understood, and [scientists are still working on it](http://www.npr.org/sections/health-shots/2015/03/30/396384911/why-are-more-baby-boys-born-than-girls)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Female:Male Gender Ratio at Each Age" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have seen that while there are more baby boys than baby girls, there are more females than males overall. So it's clear that the split between genders must vary across age groups.\n", "\n", "To study this variation, we will separate out the data for the females and the males, and eliminate the row where all the ages are aggregated and `AGE` is coded as 999.\n", "\n", "The dfs `females` and `males` contain the data for each the two genders. \n", "\n", "**N.B.** in the following cases we will reset the DataFrame index so that we may eventually carry out a comparison." ] }, { "cell_type": "code", "execution_count": 12, "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", "
indexSEXAGE2014
0204201929449
1205211931375
2206221935991
3207231957483
4208241961199
\n", "
" ], "text/plain": [ " index SEX AGE 2014\n", "0 204 2 0 1929449\n", "1 205 2 1 1931375\n", "2 206 2 2 1935991\n", "3 207 2 3 1957483\n", "4 208 2 4 1961199" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "females_all_rows = us_pop_2014[us_pop_2014['SEX'] == 2]\n", "\n", "females = females_all_rows[females_all_rows['AGE'] != 999]\n", "\n", "females = females.reset_index()\n", "\n", "females.head()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexSEXAGE2014
0102102020326
1103112018401
2104122023673
3105132049596
4106142044517
\n", "
" ], "text/plain": [ " index SEX AGE 2014\n", "0 102 1 0 2020326\n", "1 103 1 1 2018401\n", "2 104 1 2 2023673\n", "3 105 1 3 2049596\n", "4 106 1 4 2044517" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "males_all_rows = us_pop_2014[us_pop_2014['SEX'] == 1]\n", "\n", "males = males_all_rows[males_all_rows['AGE'] != 999]\n", "\n", "males = males.reset_index()\n", "\n", "males.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plan now is to compare the number of women and the number of men at each age, for each of the two years. Array and Table methods give us straightforward ways to do this. Both of these DataFrames have one row for each age." ] }, { "cell_type": "code", "execution_count": 14, "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", "
AGE
00
11
22
33
44
\n", "
" ], "text/plain": [ " AGE\n", "0 0\n", "1 1\n", "2 2\n", "3 3\n", "4 4" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "males[['AGE']].head()" ] }, { "cell_type": "code", "execution_count": 15, "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", "
AGE
00
11
22
33
44
\n", "
" ], "text/plain": [ " AGE\n", "0 0\n", "1 1\n", "2 2\n", "3 3\n", "4 4" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "females[['AGE']].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For any given age, we can get the Female:Male gender ratio by dividing the number of females by the number of males. To do this in one step, we can use `column` to extract the array of female counts and the corresponding array of male counts, and then simply divide one array by the other. Elementwise division will create an array of gender ratios for all the years." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1929449\n", "1 1931375\n", "2 1935991\n", "3 1957483\n", "4 1961199\n", "5 1962561\n", "6 2024870\n", "7 2032494\n", "8 2015285\n", "9 2010659\n", "Name: 2014, dtype: int64" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "females['2014'][0:10]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2020326\n", "1 2018401\n", "2 2023673\n", "3 2049596\n", "4 2044517\n", "5 2044339\n", "6 2111060\n", "7 2122832\n", "8 2105618\n", "9 2097690\n", "Name: 2014, dtype: int64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "males['2014'][0:10]" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.955019\n", "1 0.956884\n", "2 0.956672\n", "3 0.955058\n", "4 0.959248\n", "5 0.959998\n", "6 0.959172\n", "7 0.957445\n", "8 0.957099\n", "9 0.958511\n", "Name: 2014, dtype: float64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(females['2014']/males['2014'])[0:10]" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AGE2014 F:M RATIO
000.955019
110.956884
220.956672
330.955058
440.959248
550.959998
660.959172
770.957445
880.957099
990.958511
\n", "
" ], "text/plain": [ " AGE 2014 F:M RATIO\n", "0 0 0.955019\n", "1 1 0.956884\n", "2 2 0.956672\n", "3 3 0.955058\n", "4 4 0.959248\n", "5 5 0.959998\n", "6 6 0.959172\n", "7 7 0.957445\n", "8 8 0.957099\n", "9 9 0.958511" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratios = pd.DataFrame({\n", " 'AGE': females['AGE'],\n", " '2014 F:M RATIO': (females['2014']/males['2014'])})\n", "\n", "ratios.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see from the display that the ratios are all around 0.96 for children aged nine or younger. When the Female:Male ratio is less than 1, there are fewer females than males. Thus what we are seeing is that there were fewer girls than boys in each of the age groups 0, 1, 2, and so on through 9. Moreover, in each of these age groups, there were about 96 girls for every 100 boys." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So how can the overall proportion of females in the population be higher than the males? \n", "\n", "Something extraordinary happens when we examine the other end of the age range. Here are the Female:Male ratios for people aged more than 75." ] }, { "cell_type": "code", "execution_count": 22, "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", "
AGE2014 F:M RATIO
76761.234867
77771.257965
78781.282442
79791.316273
80801.341383
81811.379669
82821.419317
83831.465520
84841.520484
85851.575604
\n", "
" ], "text/plain": [ " AGE 2014 F:M RATIO\n", "76 76 1.234867\n", "77 77 1.257965\n", "78 78 1.282442\n", "79 79 1.316273\n", "80 80 1.341383\n", "81 81 1.379669\n", "82 82 1.419317\n", "83 83 1.465520\n", "84 84 1.520484\n", "85 85 1.575604" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(ratios[ratios['AGE'] > 75]).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "10Not only are all of these ratios greater than 1, signifying more women than men in all of these age groups, many of them are considerably greater than 1. \n", "\n", "- At ages 89 and 90 the ratios are close to 2, meaning that there were about twice as many women as men at those ages in 2014.\n", "- At ages 98 and 99, there were about 3.5 to 4 times as many women as men. \n", "\n", "If you are wondering how many people there were at these advanced ages, you can use Python to find out:" ] }, { "cell_type": "code", "execution_count": 23, "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", "
indexSEXAGE2014
9820019813518
992011998951
100202110013618
\n", "
" ], "text/plain": [ " index SEX AGE 2014\n", "98 200 1 98 13518\n", "99 201 1 99 8951\n", "100 202 1 100 13618" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "males[(males['AGE'] >= 98) & (males['AGE'] <= 100)]" ] }, { "cell_type": "code", "execution_count": 24, "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", "
indexSEXAGE2014
9830229846208
9930329932517
100304210058008
\n", "
" ], "text/plain": [ " index SEX AGE 2014\n", "98 302 2 98 46208\n", "99 303 2 99 32517\n", "100 304 2 100 58008" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "females[(females['AGE'] >= 98) & (females['AGE'] <= 100)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The graph below shows the gender ratios plotted against age. The blue curve shows the 2014 ratio by age.\n", "\n", "The ratios are almost 1 (signifying close to equal numbers of males and females) for ages 0 through 60, but they start shooting up dramatically (more females than males) starting at about age 65.\n", "\n", "That females outnumber males in the U.S. is partly due to the marked gender imbalance in favor of women among senior citizens." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ratios.plot('AGE')\n", "plt.show()" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.12" } }, "nbformat": 4, "nbformat_minor": 2 }