Skip to content

Instantly share code, notes, and snippets.

@bsmith89
Last active December 21, 2016 21:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bsmith89/5eeb9e7da35bd6b8bf28ae884f6478ff to your computer and use it in GitHub Desktop.
Save bsmith89/5eeb9e7da35bd6b8bf28ae884f6478ff to your computer and use it in GitHub Desktop.
Example analysis notebook and (*very*) rudimentary notes for a customized python-novice-gapminder. http://blog.byronjsmith.com/python-lesson-balance.html
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Introduction

  • Demonstrate "complex" analysis notebook.

Pandas/Matplotlib

  • Load data
    • Talk about the optional parameter index_col=
  • Walk through the gapminder_all data.
  • Plot 1957 life-expectancy against GDP/pop
    • Note the column-as-attribute syntax
    • Note outlier
  • data.gdpPercap_1957.argmax()
  • data.drop(...)
  • Plot Africa data alone
    • Use data[data.continent == 'Africa'] syntax
    • Plot with a color
  • CHALLENGE: Select the subset of the data from the continent which contains the country with the maximum life-expectancy in 1967

For loops

  • Talk about wanting to repeat something for each continent.

  • For loop syntax

  • CHECK YOUR UNDERSTANDING:

    Fill in the blanks in the program below so that it prints “nit” (the reverse of the original character string “tin”).

    original = "tin"
    result = ____
    for char in original:
        result = ____
    print(result)
  • Plot only a subset of the continents (africa, asia, europe)

If statements

  • Talk about wanting to do something different depending on which continent we're considering.
  • If statement syntax (notice the 'block' syntax)
    • if
    • if, else
    • if, elif, else
  • Plot a different color for several of the continents.

Plot Aesthetics

  • Add x/y axis labels
  • Add a title
  • Size the points by np.sqrt(population) (so that the area is proportional)
  • Add a legend (dummy plotting)
  • Note the uglyness of the numbers

Defining Functions

  • Celsius to fahrenheit conversion
  • Kelvin to C conversion
  • Talk about function composition
  • What are the benefits of using functions?
  • Let's write a function to convert large numbers into scientific notation
  • Add an optional argument to set the precision
  • Add some documentation and show how help(scientific_notation) works

Defensive programming

  • How do we know if it's working? (unit testing, assert)

Statsmodels

  • Line of best fit
  • Statsmodels
  • formula
  • fitting the model and viewing the summary
  • Getting the coefficients out and using them
  • Plotting the line
  • CHALLENGE: extend this analysis and share with your neighbors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment