Community Data Science Workshops (Core)/Workshop/Baby Names

From CommunityData

Baby Names

Baby Names: How many babies were born last year with your name? Are a wider variety of names used for boys or for girls? What are the most popular names used for both boys and girls? This session will use data from the US Social Security Administration on baby names from the last several years to answer these questions and more!

Goals

  • Have fun exploring real data on baby names in the US
  • Practice manipulating and searching strings
  • Practice using dictionaries
  • Practice using numbers and doing simple arithmatic

Setup

You only need to follow the instructions within the section marked "Baby Names" on this page.


Details

There are a number of files in the babynames.zip archive file. The only three we are going to working through are the example files called: babynames1.py, <babynames2.py, and babynames3.py

Each of these files begins with this line:

import ssadata

This imports the ssdata module which is a special Python module we created for this project that includes only two things:

  • ssadata.boys - A dictionary where the the keys are names of boys and the values are the number of infants born in 2013 who had that particular name.
  • ssadata.girls - A dictionary where the the keys are names of boys and the values are the number of infants born in 2013 who had that particular name.

If you are in the directory that contains the babynames projects files, you can run the following code in the interactive Python interpreter to print out the dictionary of girls:

import ssadata
import ssadata.girls

We'll walk through the rest of the important details in the session!

Ideas for exercises

  1. Search for your own name. Are there both boys and girls that have your name? Is it more popular for one group than for the other?
  2. Are there more boys' names or girls' names? What about for particular first letters? What about for every first letter?
  3. How many boys and girls are described in the dataset (i.e., how many boys and girls born in 2013 have names given to at least four others)?
  4. What is the longest name in the dataset?
  5. How many boys' names are also girls' names? How many girls' names are also boys' names?
  6. How many names are subsets of other names?
  7. Write a program that will take a name as input and return the number of girls and boys with that name.
  8. What is the most popular girls' name that is also a boys' name?
  9. Take a prefix as input and print the number of boys and girls with that prefix (i.e., "m" would list babies whose names start with "m" and "ma" would list babies whose names start with "ma", etc).