Community Data Science Workshops (Core)/Workshop/Baby Names: Difference between revisions

From CommunityData
 
No edit summary
 
(23 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Template:CDSW Header}}
== Baby Names ==
== Baby Names ==


[[File:Being a twin means you always have a pillow or blanket handy.jpg|350px]]
[[File:Being a twin means you always have a pillow or blanket handy.jpg|350px]]


[[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!
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 ==
== Goals ==


If you already set up the babynames project, feel free to skip this section.
* 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


===Download the Baby Names project===
== Setup ==


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:
You only need to follow the instructions within the section marked "Baby Names" on [[Community Data Science Workshops (Core)/Workshop/Baby Names/Setup|this page]].


# 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
# 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===
<!-- == Handout ==


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 <code>C:\Users\'''{Your User Name}'''\Desktop\babynames</code>,
* [[Baby Names handout]] - something like the [[Wordplay handout]] would be nice!
 
-->
cd C:\Users\'''{Your User Name}'''\Desktop\babynames


will change you into that directory, and
== Details ==


ls
There are a number of files in the <code>babynames.zip</code> archive file. We will work in the jupyter notebook <code>BabyNames.ipynb</code>.


will show you the source code files in that directory. One of the files is <code>babynames1.py</code>, which has a ".py" extension indicating that it is a Python script. Type:
The notebook begins with this line:


  python babynames1.py
  import ssadata


at the command prompt to execute the babynames1.py Python script. It should output text that says something like this:
This imports the ssdata module which is a special Python module we created for this project that includes only two things:


  There were 12 boys named mako
* <code>ssadata.boys</code> - A dictionary where the the keys are names of boys and the values are the number of infants born in 2018 who had that particular name.
* <code>ssadata.girls</code> - A dictionary where the the keys are names of boys and the values are the number of infants born in 2018 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:


If it does not, let a staff member know.
import ssadata
ssadata.girls


===Success!===
We'll walk through the rest of the important details in the session!
 
You've completed setup for the Baby Names project.
 
== Handout ==
 
* [[Baby Names handout]] - something like the [[Wordplay handout]] would be nice!
 
== 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 ==
== Ideas for exercises ==


# 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?
# 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?
# Are there more boys names or girls names? What about for particular letters? What about for ''every'' letter?
# Are there more boys' names or girls' names? What about for particular first letters? What about for ''every'' first letter?
# How many boys and girls are described in the dataset (i.e., how many boys and girls born in 2020 have names given to at least four others)?
# What is the longest name in the dataset?
# What is the longest name in the dataset?
# 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)?
# How many boys' names are also girls' names? How many girls' names are also boys' names?
# How many boys names are also girls names? How many girls names are also boys names?
# How many names are subsets of other names?
# How many names are subsets of other names?
# Write a program that will take a name as input and return the number of girls and boys with that name.
# Write a program that will take a name as input and return the number of girls and boys with that name.
# What is the most popular girls name that is also a boys name?
# What is the most popular girls' name that is also a boys' name?
# 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).
# 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).
 
https://imgs.xkcd.com/comics/grandpa_jason_and_grandpa_chad.png
 
[[Category:CDSW]]

Latest revision as of 20:45, 22 February 2020

Baby Names[edit]

Being a twin means you always have a pillow or blanket handy.jpg

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[edit]

  • 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[edit]

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


Details[edit]

There are a number of files in the babynames.zip archive file. We will work in the jupyter notebook BabyNames.ipynb.

The notebook 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 2018 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 2018 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
ssadata.girls

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

Ideas for exercises[edit]

  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 2020 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).

grandpa_jason_and_grandpa_chad.png