Skip to content

Instantly share code, notes, and snippets.

@saulshanabrook
Created March 5, 2015 19:50
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 saulshanabrook/0b14a3019860c3757387 to your computer and use it in GitHub Desktop.
Save saulshanabrook/0b14a3019860c3757387 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:032716fc53e1db0b5fd33772e65e12acf781992c728b0aa4fde86f7864dfe9d1"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import numpy as np\n",
"from numpy.random import randn\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import scipy as sp\n",
"import scipy.stats as st"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def percentile(i, n):\n",
" return (i - .5) / n\n",
"\n",
"def percentile_from_data(data):\n",
" n = len(data)\n",
" for i in range(1, n + 1):\n",
" yield percentile(i, n)\n",
"\n",
"def lmplot_compare(series, comparison_name, comparison_function, series_function=lambda _: _):\n",
" data = pd.DataFrame({\n",
" 'data': series_function(series),\n",
" comparison_name: comparison_function(np.array(list(percentile_from_data(series))))\n",
" })\n",
" sns.lmplot(comparison_name, 'data', data, line_kws={\"linewidth\": 1}, markers=[\".\"])\n",
" sns.residplot(comparison_name, 'data', data)\n",
"\n",
"def is_normal(series):\n",
" series.sort()\n",
" sns.distplot(series)\n",
" lmplot_compare(series, u'normal', st.norm.ppf)\n",
" #lmplot_compare(series, u'weiball', lambda series: np.log(-np.log(1-series)), lambda series: np.log(series))\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"PATH = '/host/Users/saul/Downloads/Day3Excel.xlsx'\n",
"excel = pd.io.excel.read_excel(PATH, header=2)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "IOError",
"evalue": "[Errno 2] No such file or directory: '/host/Users/saul/Downloads/Day3Excel.xlsx'",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mIOError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-3-0daa4dee57c5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mPATH\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'/host/Users/saul/Downloads/Day3Excel.xlsx'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mexcel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexcel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_excel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mPATH\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/usr/lib/python2.7/dist-packages/pandas/io/excel.pyc\u001b[0m in \u001b[0;36mread_excel\u001b[0;34m(io, sheetname, **kwds)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'engine'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 113\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mExcelFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msheetname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msheetname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib/python2.7/dist-packages/pandas/io/excel.pyc\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, io, **kwds)\u001b[0m\n\u001b[1;32m 148\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbook\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxlrd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_workbook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile_contents\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 149\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 150\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbook\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxlrd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_workbook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 151\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'xlrd'\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxlrd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBook\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 152\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbook\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib/python2.7/dist-packages/xlrd/__init__.pyc\u001b[0m in \u001b[0;36mopen_workbook\u001b[0;34m(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows)\u001b[0m\n\u001b[1;32m 392\u001b[0m \u001b[0mpeek\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfile_contents\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mpeeksz\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 393\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 394\u001b[0;31m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 395\u001b[0m \u001b[0mpeek\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpeeksz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mIOError\u001b[0m: [Errno 2] No such file or directory: '/host/Users/saul/Downloads/Day3Excel.xlsx'"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"d = u'''54.3 54.7 54.9\n",
"55\n",
"56.7\n",
"57\n",
"57.3\n",
"58\n",
"58\n",
"58.2\n",
"58.2\n",
"59.3\n",
"59.7\n",
"59.8\n",
"60\n",
"60\n",
"60\n",
"60\n",
"60.1\n",
"60.1\n",
"60.3\n",
"60.4\n",
"60.8\n",
"61.1\n",
"62.2\n",
"62.7\n",
"63'''\n",
"\n",
"data = pd.Series(map(float, d.split()), name='data')\n",
"is_normal(data)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to Bitstream Vera Sans\n",
" (prop.get_family(), self.defaultFamily[fontext]))\n",
"/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1246: UserWarning: findfont: Could not match :family=Bitstream Vera Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0. Returning /usr/share/matplotlib/mpl-data/fonts/ttf/cmb10.ttf\n",
" UserWarning)\n",
"/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1246: UserWarning: findfont: Could not match :family=Bitstream Vera Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=11.0. Returning /usr/share/matplotlib/mpl-data/fonts/ttf/cmb10.ttf\n",
" UserWarning)\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n/w+ZDw0DbnsNvQAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7f0d0ab06210>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f0d0a88b990>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import random\n",
"print np.mean(data)\n",
"get = lambda: random.choice(data)\n",
"series = lambda: pd.Series([get() for _ in range(0, 30)])\n",
"all_series = [series() for _ in range(0 ,10000)]\n",
"means = map(np.mean, all_series)\n",
"print np.percentile(means, 2.5)\n",
"print np.percentile(means, 97.5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"58.9555555556\n",
"58.0965833333"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"59.7833333333\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.std(data)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 74,
"text": [
"2.3760889424430229"
]
}
],
"prompt_number": 74
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"get_random = lambda: np.random.normal(np.mean(data), np.std(data), len(data))\n",
"all_samples = [get_random() for _ in range(100000)]\n",
"means = pd.Series(data=map(np.mean, all_samples))\n",
"stds = pd.Series(data=map(np.std, all_samples))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 75
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#is_normal(means)\n",
"np.mean(means)\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 79,
"text": [
"3.4198273218830093"
]
}
],
"prompt_number": 79
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.stats as ss"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ss.norm.ppf(1-0.025)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"1.959963984540054"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment