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!

Setup

If you already set up the babynames project, feel free to skip this section.

Download the Baby Names project

You'll be playing with data from the list of all baby names in the US (used more than five times in a year) from the last several years:

  1. Right click the following file, click "Save Target as..." or "Save link as...", and save it to your Desktop directory: http://mako.cc/teaching/2015/cdsw-spring/babynames.zip
  2. The ".zip" extension on the above file indicates that it is a compressed Zip archive. We need to "extract" its contents. To do this, click on "Start", then "Computer", and navigate to your Desktop directory. Find babynames.zip on your Desktop and double-click on it to "unzip" it. That will create a folder called babynames containing several files.

Test the Baby Names code

Start a command prompt and navigate to the Desktop\babynames directory where the Baby Names code lives. For example, if the Baby Names project is at C:\Users\{Your User Name}\Desktop\babynames,

cd C:\Users\{Your User Name}\Desktop\babynames

will change you into that directory, and

ls

will show you the source code files in that directory. One of the files is babynames1.py, which has a ".py" extension indicating that it is a Python script. Type:

python babynames1.py

at the command prompt to execute the babynames1.py Python script. It should output text that says something like this:

There were 12 boys named mako

If it does not, let a staff member know.

Success!

You've completed setup for the Baby Names project.

Handout

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

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 letters? What about for every letter?
  3. What is the longest name in the dataset?
  4. 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)?
  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).