Skip to content

Instantly share code, notes, and snippets.

@vanzaj
Created November 19, 2013 01:53
Show Gist options
  • Save vanzaj/7538924 to your computer and use it in GitHub Desktop.
Save vanzaj/7538924 to your computer and use it in GitHub Desktop.
Practical data analytics with Python
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<style>\n",
".big {font-size: 300%;}\n",
"</style>\n",
"\n",
"<center>\n",
"<h1 class=\"big\">Practical data analytics with Python</h1>\n",
"<h3>Ivan Zimine</h3>\n",
"<h3>(vanzaj @ {gmail, twitter, github})</h3>\n",
"<h3>18 Nov, 2013</h3>\n",
"\n",
"</center>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## About Python"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import HTML\n",
"\n",
"url = \"https://en.wikipedia.org/wiki/Python_(programming_language)\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"https://en.wikipedia.org/wiki/Python_(programming_language)\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 71,
"text": [
"<IPython.core.display.HTML at 0x1085c4710>"
]
}
],
"prompt_number": 71
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!python -m this | head -5"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The Zen of Python, by Tim Peters\r\n",
"\r\n",
"Beautiful is better than ugly.\r\n",
"Explicit is better than implicit.\r\n",
"Simple is better than complex.\r\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# introduction to programming in Python\n",
"url=\"http://www.greenteapress.com/thinkpython/\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"http://www.greenteapress.com/thinkpython/\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"<IPython.core.display.HTML at 0x103ba7fd0>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Stats using standard Python\n",
"url=\"http://www.greenteapress.com/thinkstats/\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"http://www.greenteapress.com/thinkstats/\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"<IPython.core.display.HTML at 0x103ba8190>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analytics using standard Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### What's in my command line history?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!head -5 /Users/ivan/.bash_history"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"l\r\n",
"ls\r\n",
"ls -al\r\n",
"clear\r\n",
"ll\r\n"
]
}
],
"prompt_number": 163
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!wc -l /Users/ivan/.bash_history"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 22530 /Users/ivan/.bash_history\r\n"
]
}
],
"prompt_number": 164
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# read into python list\n",
"cmds = !cat /Users/ivan/.bash_history\n",
"len(cmds)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"22530"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cmds[0:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"['l', 'ls', 'ls -al', 'clear', 'll', 'exit', 'l', 'ls', 'mkdir Cloud', 'ls']"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cmd_freq = {}\n",
"\n",
"for line in cmds:\n",
" try:\n",
" c = line.split()[0]\n",
" except IndexError:\n",
" # caused by empty line\n",
" continue\n",
" if len(c) > 20:\n",
" continue\n",
" # aliases\n",
" if c in ['l', 'll']:\n",
" c = 'ls'\n",
" \n",
" cmd_freq[c] = cmd_freq.get(c, 0) + 1\n",
"\n",
"\n",
"nb_cmd = len(cmd_freq.keys())\n",
"\n",
"print(\"%s: %d\" % (\"nb. of unique cmds\", nb_cmd))\n",
"print(\"%s: %d\" % (\"freq of 'ls'\", cmd_freq['ls']))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"nb. of unique cmds: 451\n",
"freq of 'ls': 2424\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# convert to list of tuples ('cmd', count) and sort by count\n",
"cmd_freq_sorted = sorted(cmd_freq.iteritems(), key=lambda x: x[1], reverse=True)\n",
"cmd_freq_sorted[:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"[('cd', 5044),\n",
" ('git', 3119),\n",
" ('ls', 2424),\n",
" ('vi', 1757),\n",
" ('less', 644),\n",
" ('mv', 543),\n",
" ('cat', 519),\n",
" ('clear', 403),\n",
" ('curl', 365),\n",
" ('ipython', 356)]"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# alternative solution\n",
"from collections import Counter\n",
"cnt = Counter(cmd_freq)\n",
"cnt.most_common(10)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"[('cd', 5044),\n",
" ('git', 3119),\n",
" ('ls', 2424),\n",
" ('vi', 1757),\n",
" ('less', 644),\n",
" ('mv', 543),\n",
" ('cat', 519),\n",
" ('clear', 403),\n",
" ('curl', 365),\n",
" ('ipython', 356)]"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cmd_freq_norm = [ (x[0], float(x[1])/nb_cmd) for x in cmd_freq_sorted ]\n",
"cmd_freq_norm[:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"[('cd', 11.184035476718403),\n",
" ('git', 6.9157427937915745),\n",
" ('ls', 5.3747228381374725),\n",
" ('vi', 3.895787139689579),\n",
" ('less', 1.4279379157427938),\n",
" ('mv', 1.2039911308203992),\n",
" ('cat', 1.1507760532150777),\n",
" ('clear', 0.893569844789357),\n",
" ('curl', 0.8093126385809313),\n",
" ('ipython', 0.7893569844789357)]"
]
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# compute total of 10 first items\n",
"sum(map(lambda x: x[1], cmd_freq_norm[:10]))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"33.645232815964526"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data analytics workflow (big or small)\n",
"\n",
"1. Identify problem(s)/question(s)\n",
"2. Get the data\n",
"3. Read data into memory\n",
"4. Transform/Prepare/Cleanup\n",
"5. Analyze (sort, count, statistical modeling)\n",
"6. Interpret results\n",
"\n",
"<hr />"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analytics using NumPy/SciPy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Computing $\\pi$ using Monte Carlo method\n",
"\n",
"\n",
"![unit circle](http://learntofish.files.wordpress.com/2010/10/circle_dots.png?w=300&h=300)\n",
"\n",
"([image source](http://learntofish.wordpress.com/2010/10/13/calculating-pi-with-the-monte-carlo-method/))\n",
"\n",
"$$\n",
"\\frac{A_{circle}}{A_{square}} = \\frac{\\pi r^2}{(2r)^2} = \\frac{\\pi}{4}\n",
"$$\n",
"\n",
"The value of $\\pi$ can be found from the ratio of the areas times 4. If we don't know the areas, we can still estimate the ratio by considering a set of random points inside the square and the fraction of points inside the circle (thinks (a few) games of darts).\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%reset"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Once deleted, variables cannot be recovered. Proceed (y/[n])? y\n"
]
}
],
"prompt_number": 177
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline --no-import-all\n",
"\n",
"#import numpy as np\n",
"#import matplotlib.pyplot as plt"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# generate a list of random numbers between 0 and 1\n",
"px = np.random.rand(5)\n",
"px"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
"array([ 0.60273392, 0.39896095, 0.0419097 , 0.68031887, 0.17474443])"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# what kind of distribution?\n",
"px = np.random.rand(1000)\n",
"plt.hist(px)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": [
"(array([ 92., 75., 115., 109., 117., 99., 98., 97., 89., 109.]),\n",
" array([ 1.83302224e-04, 1.00068495e-01, 1.99953688e-01,\n",
" 2.99838880e-01, 3.99724073e-01, 4.99609265e-01,\n",
" 5.99494458e-01, 6.99379651e-01, 7.99264843e-01,\n",
" 8.99150036e-01, 9.99035229e-01]),\n",
" <a list of 10 Patch objects>)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n+Y1WrVo19hdq1113nRtRMy6Zsbj++us1ODgoSRocHFRubq58vrQeUvSEZcuWaebMmZf9vpPezEjJ\nJ3NS1MctY2K5pXqC2LZt27RixYpsRMu6ZJ8Xu3bt0r333isp+XMvrjbJjMW//vUvDQwMaPny5Vq8\neLFeeOGFbMfMimTGYv369Wpvb9ecOXNUWVmpLVu2ZDumJzjpzYy8FSb7wrQ/cszXxBd0Kj/Tn//8\nZz377LP629/+lsFE7klmLB544AFFIhFZliXbti95jpgimbEYHh7WoUOHtHfvXp09e1ZLly7VF7/4\nRZWWlmYhYfYkMxaPP/64Fi5cqNbWVh07dkyhUEiHDx/WtGnTspDQW1LtzYyUfDInRX10mZ6eHuXn\n52cijquSGQtJOnLkiNavX6+WlpYJf127miUzFq+99pruuOMOSaMH2/bs2aOcnBzddtttWc2aacmM\nRWFhoa677jpdc801uuaaa3TLLbfo8OHDxpV8MmOxf/9+/fCHP5Q0elLQ5z//eb311ltavHhxVrO6\nzVFvpu2IwUWGh4ftG264we7q6rKHhoaueOD1wIEDxh5sTGYs3n33Xbu4uNg+cOCASymzI5mxuNhd\nd91l/+53v8tiwuxJZiyOHj1qV1dX2/F43D5z5oxdUVFht7e3u5Q4c5IZiwcffNB+5JFHbNu27f7+\nfjs/P9/+97//7UbcjOvq6krqwGuyvZmRPfnLnRT1zDPPSJK+853vaMWKFdq9e7dKSkr06U9/Ws89\n91wmorgumbF49NFHderUqbF56JycHLW1tbkZOyOSGYtPimTGory8XLfeeqsWLFigKVOmaP369QoG\ngy4nT79kxmLTpk1au3atKisrdf78ef34xz/WrFmzXE6efvX19dq3b59OnjypwsJCNTQ0aHh4WJLz\n3uRkKAAwGB//BwAGo+QBwGCUPAAYjJIHAINR8gBgMEoeAAxGyQOAwSh5ADDY/wOW5MTaLzb9ugAA\nAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x105e20710>"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"nb_pts = 5000\n",
"\n",
"px = np.random.rand(nb_pts)\n",
"py = np.random.rand(nb_pts)\n",
"\n",
"plt.plot(px, py, '.')\n",
"plt.axis('scaled')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": [
"(0.0, 1.0, 0.0, 1.0)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAQcAAAEACAYAAAC+rrMfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsfVuIXed59tIcNaPDHC0r47EUWZLVODr+dn/RijJJI+F6\nEjLCVKArJU0sQhs3aa+cmzKFguSSi1JIQC2UlLgl/bFbaEvtXFWlSW2TNAkq1IXGQSpJISVpdii0\n4EP6/Rerj9aznvW837e2bCXdMB8spNl77bW+43t83vfdllJK1Vbbalttq0kb+0l3YKttta32v7Nt\nEYetttW2mm1bxGGrbbWtZtsWcdhqW22r2bZFHLbaVttqtm0Rh6221baabUXi8JGPfKS69957q2PH\njoX3fOITn6gOHz5cnThxovrGN77xtnZwq221rfaTaUXi8Eu/9EvVF7/4xfD7559/vnr11Verb37z\nm9Xv//7vV7/8y7/8tnZwq221rfaTaUXi8HM/93PVwsJC+P1f/MVfVB/60Ieqqqqq06dPVz/84Q+r\nf/u3f3v7erjVttpW+4m0t2xz+Nd//dfq/vvvv/336upq9Z3vfOetPnarbbWt9hNub4tBUhHY27Zt\nezseu9W22lb7CbaJt/qA++67r/r2t799++/vfOc71X333de579ChQ9W3vvWtt/q6rbbVttqQ7eDB\ng9Wrr7469O/esuTwwQ9+sPr85z9fVVVVvfzyy9X8/Hx17733du771re+Va2tpWp5OVVVlapHHknV\n2bP1/8fH63+rKlUbG6lKqX2trTXfT02l6tat9mcXLrTvf+yx5h2DQff3Z87U9+h3e/fW/y4vp2pu\nLlVVtVmdOlXfh2cuLze/R//5mpho9+vy5fodeJ+OLaX6nvp97Wtqqv7dpUv1M1ZX63cvLPixb25u\n3n4e3rmyUt83N1fPWzSveumcuj7nxqVrkFKqJieb56+sdPvMcxC9H8/VNdu5s14P7kufucd93LfF\nxfxv/s//2ew8142X5xf7vqrq9XO/u3Sp3xz0mRf+7R0z5VRoFy9eTO94xzvS5ORkWl1dTX/wB3+Q\nrl27lq5du3b7no9//OPp4MGD6fjx4+lrX/uafU7d65SqKqXV1ZQGg/q6cCGlvXvrz8fGUlpbqz9H\nu3w5pYWFdPu3+P1jj9X/f+SR9v0pNc/F57h3aiqlXbua51y40H7OrVv1Z2fO4J7NtLHRfmbzXUr7\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x103ce2ad0>"
]
}
],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"r = np.sqrt(px**2 + py**2)\n",
"\n",
"wh = np.where(r <= 1.0)[0]\n",
"\n",
"ratio = float(len(wh))/nb_pts\n",
"print(\"pi estimate: %5.3f\" % (ratio * 4))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"pi estimate: 3.131\n"
]
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import Math\n",
"Math(\"\\pi \\sim %5.3f\" % (ratio * 4))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\pi \\sim 3.131$$"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"<IPython.core.display.Math at 0x105e47150>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.figure(figsize=(6,6))\n",
"\n",
"cx = np.linspace(0, 1, 100)\n",
"cy = np.sqrt(1 - cx**2)\n",
"\n",
"plt.plot(cx, cy, 'k-', lw=2)\n",
"\n",
"plt.plot(px, py, '.')\n",
"plt.plot(px[wh], py[wh], 'r.')\n",
"\n",
"plt.axis('scaled')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"text": [
"(0.0, 1.0, 0.0, 1.0)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\ndCfi5N9w1wAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x106105f90>"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Beyond array math"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import HTML\n",
"\n",
"url=\"http://pandas.pydata.org/\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"http://pandas.pydata.org/\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 19,
"text": [
"<IPython.core.display.HTML at 0x106106610>"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# list (standard Python)\n",
"x = range(5)\n",
"\n",
"print(x)\n",
"\n",
"print(2 * x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0, 1, 2, 3, 4]\n",
"[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]\n"
]
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# numpy array\n",
"x = np.arange(5)\n",
"\n",
"print(x)\n",
"\n",
"print(2 * x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4]\n",
"[0 2 4 6 8]\n"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"\n",
"x = pd.Series(range(2, 7))\n",
"\n",
"print(x)\n",
"print(2*x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0 2\n",
"1 3\n",
"2 4\n",
"3 5\n",
"4 6\n",
"dtype: int64\n",
"0 4\n",
"1 6\n",
"2 8\n",
"3 10\n",
"4 12\n",
"dtype: int64\n"
]
}
],
"prompt_number": 23
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = pd.Series(range(5), index=['a', 'b', 'c', 'd', 'e'])\n",
"\n",
"print(x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"a 0\n",
"b 1\n",
"c 2\n",
"d 3\n",
"e 4\n",
"dtype: int64\n"
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x['c']"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 25,
"text": [
"2"
]
}
],
"prompt_number": 25
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# index alignment\n",
"y = pd.Series([100, 200, 300], index=['e', 'f', 'b'])\n",
"\n",
"x + y"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 26,
"text": [
"a NaN\n",
"b 301\n",
"c NaN\n",
"d NaN\n",
"e 104\n",
"f NaN\n",
"dtype: float64"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"z = x + y\n",
"z.dropna()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 27,
"text": [
"b 301\n",
"e 104\n",
"dtype: float64"
]
}
],
"prompt_number": 27
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# works with heterogeneuous data\n",
"\n",
"s1 = pd.Series([1, 2.0, 'three'], index=['a', 'b', 'c'])\n",
"\n",
"s2 = pd.Series([10.0, '_X', 1000], index=['b', 'c', 'a'])\n",
"\n",
"s1 + s2"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
"a 1001\n",
"b 12\n",
"c three_X\n",
"dtype: object"
]
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# index filtering\n",
"\n",
"x = pd.Series(np.linspace(-1, 1, 10))\n",
"print(x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0 -1.000000\n",
"1 -0.777778\n",
"2 -0.555556\n",
"3 -0.333333\n",
"4 -0.111111\n",
"5 0.111111\n",
"6 0.333333\n",
"7 0.555556\n",
"8 0.777778\n",
"9 1.000000\n",
"dtype: float64\n"
]
}
],
"prompt_number": 29
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x[ x >= 0 ]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 30,
"text": [
"5 0.111111\n",
"6 0.333333\n",
"7 0.555556\n",
"8 0.777778\n",
"9 1.000000\n",
"dtype: float64"
]
}
],
"prompt_number": 30
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Input/Output (CSV)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!head ../data/2013-Nov_chicago-salaries.csv"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Name,Position Title,Department,Employee Annual Salary\r\n",
"\"AARON, ELVIA J\",WATER RATE TAKER,WATER MGMNT,$85512.00\r\n",
"\"AARON, JEFFERY M\",POLICE OFFICER,POLICE,$75372.00\r\n",
"\"AARON, KIMBERLEI R\",CHIEF CONTRACT EXPEDITER,GENERAL SERVICES,$80916.00\r\n",
"\"ABAD JR, VICENTE M\",CIVIL ENGINEER IV,WATER MGMNT,$99648.00\r\n",
"\"ABBATACOLA, ROBERT J\",ELECTRICAL MECHANIC,AVIATION,$89440.00\r\n",
"\"ABBATEMARCO, JAMES J\",FIREFIGHTER,FIRE,$78012.00\r\n",
"\"ABBATE, TERRY M\",POLICE OFFICER,POLICE,$80724.00\r\n",
"\"ABBOTT, BETTY L\",FOSTER GRANDPARENT,FAMILY & SUPPORT,$2756.00\r\n",
"\"ABBOTT, LYNISE M\",CLERK III,POLICE,$41784.00\r\n"
]
}
],
"prompt_number": 32
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# read data into a DataFrame (collection of Series)\n",
"data = pd.read_csv(\"../data/2013-Nov_chicago-salaries.csv\")\n",
"data"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<pre>\n",
"&lt;class 'pandas.core.frame.DataFrame'&gt;\n",
"Int64Index: 29365 entries, 0 to 29364\n",
"Data columns (total 4 columns):\n",
"Name 29365 non-null values\n",
"Position Title 29365 non-null values\n",
"Department 29365 non-null values\n",
"Employee Annual Salary 29365 non-null values\n",
"dtypes: object(4)\n",
"</pre>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 33,
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 29365 entries, 0 to 29364\n",
"Data columns (total 4 columns):\n",
"Name 29365 non-null values\n",
"Position Title 29365 non-null values\n",
"Department 29365 non-null values\n",
"Employee Annual Salary 29365 non-null values\n",
"dtypes: object(4)"
]
}
],
"prompt_number": 33
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data.head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Position Title</th>\n",
" <th>Department</th>\n",
" <th>Employee Annual Salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> AARON, ELVIA J</td>\n",
" <td> WATER RATE TAKER</td>\n",
" <td> WATER MGMNT</td>\n",
" <td> $85512.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> AARON, JEFFERY M</td>\n",
" <td> POLICE OFFICER</td>\n",
" <td> POLICE</td>\n",
" <td> $75372.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> AARON, KIMBERLEI R</td>\n",
" <td> CHIEF CONTRACT EXPEDITER</td>\n",
" <td> GENERAL SERVICES</td>\n",
" <td> $80916.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"text": [
" Name Position Title Department Employee Annual Salary\n",
"0 AARON, ELVIA J WATER RATE TAKER WATER MGMNT $85512.00\n",
"1 AARON, JEFFERY M POLICE OFFICER POLICE $75372.00\n",
"2 AARON, KIMBERLEI R CHIEF CONTRACT EXPEDITER GENERAL SERVICES $80916.00"
]
}
],
"prompt_number": 34
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data['Name'][:5]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 37,
"text": [
"0 AARON, ELVIA J\n",
"1 AARON, JEFFERY M\n",
"2 AARON, KIMBERLEI R\n",
"3 ABAD JR, VICENTE M\n",
"4 ABBATACOLA, ROBERT J\n",
"Name: Name, dtype: object"
]
}
],
"prompt_number": 37
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data['Employee Annual Salary'].max()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 205,
"text": [
"'$99996.00'"
]
}
],
"prompt_number": 205
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\"problems\": column names with 'space' and non-numerical character in \"numerical\" column"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# desired column names (valid identifier)\n",
"hdr_names = ['name', 'title', 'department', 'salary']\n",
"\n",
"data = pd.read_csv(\"../data/2013-Nov_chicago-salaries.csv\", header=False, names=hdr_names, \n",
" converters={\"salary\": lambda x: float(x.replace('$', ''))})"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 39
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data.head(5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>title</th>\n",
" <th>department</th>\n",
" <th>salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> AARON, ELVIA J</td>\n",
" <td> WATER RATE TAKER</td>\n",
" <td> WATER MGMNT</td>\n",
" <td> 85512</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> AARON, JEFFERY M</td>\n",
" <td> POLICE OFFICER</td>\n",
" <td> POLICE</td>\n",
" <td> 75372</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> AARON, KIMBERLEI R</td>\n",
" <td> CHIEF CONTRACT EXPEDITER</td>\n",
" <td> GENERAL SERVICES</td>\n",
" <td> 80916</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> ABAD JR, VICENTE M</td>\n",
" <td> CIVIL ENGINEER IV</td>\n",
" <td> WATER MGMNT</td>\n",
" <td> 99648</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> ABBATACOLA, ROBERT J</td>\n",
" <td> ELECTRICAL MECHANIC</td>\n",
" <td> AVIATION</td>\n",
" <td> 89440</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 40,
"text": [
" name title department salary\n",
"0 AARON, ELVIA J WATER RATE TAKER WATER MGMNT 85512\n",
"1 AARON, JEFFERY M POLICE OFFICER POLICE 75372\n",
"2 AARON, KIMBERLEI R CHIEF CONTRACT EXPEDITER GENERAL SERVICES 80916\n",
"3 ABAD JR, VICENTE M CIVIL ENGINEER IV WATER MGMNT 99648\n",
"4 ABBATACOLA, ROBERT J ELECTRICAL MECHANIC AVIATION 89440"
]
}
],
"prompt_number": 40
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"type(data['salary'])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 41,
"text": [
"pandas.core.series.Series"
]
}
],
"prompt_number": 41
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data.salary.min(), data.salary.max()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 42,
"text": [
"(0.95999999999999996, 260004.0)"
]
}
],
"prompt_number": 42
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data[ data.salary < 10 ]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>title</th>\n",
" <th>department</th>\n",
" <th>salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>13845</th>\n",
" <td> KOCH, STEVEN</td>\n",
" <td> ADMINISTRATIVE SECRETARY</td>\n",
" <td> MAYOR'S OFFICE</td>\n",
" <td> 0.96</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 43,
"text": [
" name title department salary\n",
"13845 KOCH, STEVEN ADMINISTRATIVE SECRETARY MAYOR'S OFFICE 0.96"
]
}
],
"prompt_number": 43
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = data.drop(13845)\n",
"data.salary.min()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 44,
"text": [
"2756.0"
]
}
],
"prompt_number": 44
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# add new column\n",
"data['montly_salary'] = data.salary / 12\n",
"data.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>title</th>\n",
" <th>department</th>\n",
" <th>salary</th>\n",
" <th>montly_salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> AARON, ELVIA J</td>\n",
" <td> WATER RATE TAKER</td>\n",
" <td> WATER MGMNT</td>\n",
" <td> 85512</td>\n",
" <td> 7126.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> AARON, JEFFERY M</td>\n",
" <td> POLICE OFFICER</td>\n",
" <td> POLICE</td>\n",
" <td> 75372</td>\n",
" <td> 6281.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> AARON, KIMBERLEI R</td>\n",
" <td> CHIEF CONTRACT EXPEDITER</td>\n",
" <td> GENERAL SERVICES</td>\n",
" <td> 80916</td>\n",
" <td> 6743.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> ABAD JR, VICENTE M</td>\n",
" <td> CIVIL ENGINEER IV</td>\n",
" <td> WATER MGMNT</td>\n",
" <td> 99648</td>\n",
" <td> 8304.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> ABBATACOLA, ROBERT J</td>\n",
" <td> ELECTRICAL MECHANIC</td>\n",
" <td> AVIATION</td>\n",
" <td> 89440</td>\n",
" <td> 7453.333333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 45,
"text": [
" name title department salary montly_salary\n",
"0 AARON, ELVIA J WATER RATE TAKER WATER MGMNT 85512 7126.000000\n",
"1 AARON, JEFFERY M POLICE OFFICER POLICE 75372 6281.000000\n",
"2 AARON, KIMBERLEI R CHIEF CONTRACT EXPEDITER GENERAL SERVICES 80916 6743.000000\n",
"3 ABAD JR, VICENTE M CIVIL ENGINEER IV WATER MGMNT 99648 8304.000000\n",
"4 ABBATACOLA, ROBERT J ELECTRICAL MECHANIC AVIATION 89440 7453.333333"
]
}
],
"prompt_number": 45
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# top 5 earners\n",
"data.sort('salary', ascending=False)[:5]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>title</th>\n",
" <th>department</th>\n",
" <th>salary</th>\n",
" <th>montly_salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>16517</th>\n",
" <td> MC CARTHY, GARRY F</td>\n",
" <td> SUPERINTENDENT OF POLICE</td>\n",
" <td> POLICE</td>\n",
" <td> 260004</td>\n",
" <td> 21667.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7317 </th>\n",
" <td> EMANUEL, RAHM</td>\n",
" <td> MAYOR</td>\n",
" <td> MAYOR'S OFFICE</td>\n",
" <td> 216210</td>\n",
" <td> 18017.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23445</th>\n",
" <td> SANTIAGO, JOSE A</td>\n",
" <td> FIRE COMMISSIONER</td>\n",
" <td> FIRE</td>\n",
" <td> 202728</td>\n",
" <td> 16894.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25279</th>\n",
" <td> STEWART III, CHARLES</td>\n",
" <td> FIRST DEPUTY FIRE COMMISSIONER</td>\n",
" <td> FIRE</td>\n",
" <td> 188316</td>\n",
" <td> 15693.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28942</th>\n",
" <td> WYSINGER, ALFONZA</td>\n",
" <td> FIRST DEPUTY SUPERINTENDENT</td>\n",
" <td> POLICE</td>\n",
" <td> 188316</td>\n",
" <td> 15693.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 46,
"text": [
" name title department \\\n",
"16517 MC CARTHY, GARRY F SUPERINTENDENT OF POLICE POLICE \n",
"7317 EMANUEL, RAHM MAYOR MAYOR'S OFFICE \n",
"23445 SANTIAGO, JOSE A FIRE COMMISSIONER FIRE \n",
"25279 STEWART III, CHARLES FIRST DEPUTY FIRE COMMISSIONER FIRE \n",
"28942 WYSINGER, ALFONZA FIRST DEPUTY SUPERINTENDENT POLICE \n",
"\n",
" salary montly_salary \n",
"16517 260004 21667.0 \n",
"7317 216210 18017.5 \n",
"23445 202728 16894.0 \n",
"25279 188316 15693.0 \n",
"28942 188316 15693.0 "
]
}
],
"prompt_number": 46
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# how many make over 100K (%)\n",
"float(len( data[data.salary > 100000] )) / len(data) * 100"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 49,
"text": [
"7.686282522817055"
]
}
],
"prompt_number": 49
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print len( data[ data.department == 'POLICE' ] )\n",
"print len(data)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"13623\n",
"29364\n"
]
}
],
"prompt_number": 50
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# categorical grouping\n",
"by_dept = data.groupby('department')\n",
"type(by_dept)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 54,
"text": [
"pandas.core.groupby.DataFrameGroupBy"
]
}
],
"prompt_number": 54
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"by_dept.size()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 55,
"text": [
"department\n",
"AVIATION 1218\n",
"BUSINESS AFFAIRS 181\n",
"CITY COUNCIL 378\n",
"FAMILY & SUPPORT 727\n",
"FIRE 4731\n",
"GENERAL SERVICES 913\n",
"HEALTH 573\n",
"IPRA 85\n",
"LAW 450\n",
"MAYOR'S OFFICE 98\n",
"OEMC 1292\n",
"POLICE 13623\n",
"STREETS & SAN 2070\n",
"TRANSPORTN 1168\n",
"WATER MGMNT 1857\n",
"dtype: int64"
]
}
],
"prompt_number": 55
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"by_dept.mean()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>salary</th>\n",
" <th>montly_salary</th>\n",
" </tr>\n",
" <tr>\n",
" <th>department</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AVIATION</th>\n",
" <td> 70638.249130</td>\n",
" <td> 5886.520761</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BUSINESS AFFAIRS</th>\n",
" <td> 71897.646409</td>\n",
" <td> 5991.470534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CITY COUNCIL</th>\n",
" <td> 58029.671852</td>\n",
" <td> 4835.805988</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FAMILY &amp; SUPPORT</th>\n",
" <td> 38667.509216</td>\n",
" <td> 3222.292435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FIRE</th>\n",
" <td> 89579.082621</td>\n",
" <td> 7464.923552</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GENERAL SERVICES</th>\n",
" <td> 80783.812004</td>\n",
" <td> 6731.984334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HEALTH</th>\n",
" <td> 77181.371379</td>\n",
" <td> 6431.780948</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IPRA</th>\n",
" <td> 82425.035294</td>\n",
" <td> 6868.752941</td>\n",
" </tr>\n",
" <tr>\n",
" <th>LAW</th>\n",
" <td> 70853.156000</td>\n",
" <td> 5904.429667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MAYOR'S OFFICE</th>\n",
" <td> 86121.857143</td>\n",
" <td> 7176.821429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>OEMC</th>\n",
" <td> 50573.057121</td>\n",
" <td> 4214.421427</td>\n",
" </tr>\n",
" <tr>\n",
" <th>POLICE</th>\n",
" <td> 75671.932497</td>\n",
" <td> 6305.994375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>STREETS &amp; SAN</th>\n",
" <td> 69856.663188</td>\n",
" <td> 5821.388599</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TRANSPORTN</th>\n",
" <td> 80453.301952</td>\n",
" <td> 6704.441829</td>\n",
" </tr>\n",
" <tr>\n",
" <th>WATER MGMNT</th>\n",
" <td> 81263.471190</td>\n",
" <td> 6771.955933</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 56,
"text": [
" salary montly_salary\n",
"department \n",
"AVIATION 70638.249130 5886.520761\n",
"BUSINESS AFFAIRS 71897.646409 5991.470534\n",
"CITY COUNCIL 58029.671852 4835.805988\n",
"FAMILY & SUPPORT 38667.509216 3222.292435\n",
"FIRE 89579.082621 7464.923552\n",
"GENERAL SERVICES 80783.812004 6731.984334\n",
"HEALTH 77181.371379 6431.780948\n",
"IPRA 82425.035294 6868.752941\n",
"LAW 70853.156000 5904.429667\n",
"MAYOR'S OFFICE 86121.857143 7176.821429\n",
"OEMC 50573.057121 4214.421427\n",
"POLICE 75671.932497 6305.994375\n",
"STREETS & SAN 69856.663188 5821.388599\n",
"TRANSPORTN 80453.301952 6704.441829\n",
"WATER MGMNT 81263.471190 6771.955933"
]
}
],
"prompt_number": 56
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.figure(figsize=(10,5))\n",
"\n",
"by_dept.salary.mean().order(ascending=False).plot(kind='bar')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 57,
"text": [
"<matplotlib.axes.AxesSubplot at 0x102963790>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x102963110>"
]
}
],
"prompt_number": 57
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"by_dept.salary.agg(['min', 'max', 'mean', 'median'])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>min</th>\n",
" <th>max</th>\n",
" <th>mean</th>\n",
" <th>median</th>\n",
" </tr>\n",
" <tr>\n",
" <th>department</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AVIATION</th>\n",
" <td> 8580.0</td>\n",
" <td> 186576</td>\n",
" <td> 70638.249130</td>\n",
" <td> 70408</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BUSINESS AFFAIRS</th>\n",
" <td> 14071.2</td>\n",
" <td> 157092</td>\n",
" <td> 71897.646409</td>\n",
" <td> 69648</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CITY COUNCIL</th>\n",
" <td> 7488.0</td>\n",
" <td> 160248</td>\n",
" <td> 58029.671852</td>\n",
" <td> 52980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FAMILY &amp; SUPPORT</th>\n",
" <td> 2756.0</td>\n",
" <td> 157092</td>\n",
" <td> 38667.509216</td>\n",
" <td> 39912</td>\n",
" </tr>\n",
" <tr>\n",
" <th>FIRE</th>\n",
" <td> 45828.0</td>\n",
" <td> 202728</td>\n",
" <td> 89579.082621</td>\n",
" <td> 83982</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GENERAL SERVICES</th>\n",
" <td> 16296.8</td>\n",
" <td> 157092</td>\n",
" <td> 80783.812004</td>\n",
" <td> 89440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HEALTH</th>\n",
" <td> 43320.0</td>\n",
" <td> 177156</td>\n",
" <td> 77181.371379</td>\n",
" <td> 73020</td>\n",
" </tr>\n",
" <tr>\n",
" <th>IPRA</th>\n",
" <td> 37704.0</td>\n",
" <td> 146940</td>\n",
" <td> 82425.035294</td>\n",
" <td> 82524</td>\n",
" </tr>\n",
" <tr>\n",
" <th>LAW</th>\n",
" <td> 14372.8</td>\n",
" <td> 173664</td>\n",
" <td> 70853.156000</td>\n",
" <td> 66492</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MAYOR'S OFFICE</th>\n",
" <td> 36400.0</td>\n",
" <td> 216210</td>\n",
" <td> 86121.857143</td>\n",
" <td> 75552</td>\n",
" </tr>\n",
" <tr>\n",
" <th>OEMC</th>\n",
" <td> 19167.2</td>\n",
" <td> 167796</td>\n",
" <td> 50573.057121</td>\n",
" <td> 57048</td>\n",
" </tr>\n",
" <tr>\n",
" <th>POLICE</th>\n",
" <td> 9360.0</td>\n",
" <td> 260004</td>\n",
" <td> 75671.932497</td>\n",
" <td> 78012</td>\n",
" </tr>\n",
" <tr>\n",
" <th>STREETS &amp; SAN</th>\n",
" <td> 17602.0</td>\n",
" <td> 157092</td>\n",
" <td> 69856.663188</td>\n",
" <td> 69576</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TRANSPORTN</th>\n",
" <td> 17134.0</td>\n",
" <td> 169500</td>\n",
" <td> 80453.301952</td>\n",
" <td> 76960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>WATER MGMNT</th>\n",
" <td> 38460.0</td>\n",
" <td> 169512</td>\n",
" <td> 81263.471190</td>\n",
" <td> 78624</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 58,
"text": [
" min max mean median\n",
"department \n",
"AVIATION 8580.0 186576 70638.249130 70408\n",
"BUSINESS AFFAIRS 14071.2 157092 71897.646409 69648\n",
"CITY COUNCIL 7488.0 160248 58029.671852 52980\n",
"FAMILY & SUPPORT 2756.0 157092 38667.509216 39912\n",
"FIRE 45828.0 202728 89579.082621 83982\n",
"GENERAL SERVICES 16296.8 157092 80783.812004 89440\n",
"HEALTH 43320.0 177156 77181.371379 73020\n",
"IPRA 37704.0 146940 82425.035294 82524\n",
"LAW 14372.8 173664 70853.156000 66492\n",
"MAYOR'S OFFICE 36400.0 216210 86121.857143 75552\n",
"OEMC 19167.2 167796 50573.057121 57048\n",
"POLICE 9360.0 260004 75671.932497 78012\n",
"STREETS & SAN 17602.0 157092 69856.663188 69576\n",
"TRANSPORTN 17134.0 169500 80453.301952 76960\n",
"WATER MGMNT 38460.0 169512 81263.471190 78624"
]
}
],
"prompt_number": 58
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# save to csv\n",
"by_dept.salary.agg(['min', 'max', 'mean', 'median']).to_csv('group_sal.csv')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 224
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#!open group_sal.csv"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 225
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Combining data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"WIFI usage data (mongodb -> csv & json)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import os\n",
"\n",
"fn = os.path.join(os.environ['HOME'], 'tmp', 'mondb', 'session.csv')\n",
"\n",
"!head -5 $fn"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"ap_mac,assoc_time,disassoc_time,duration,ip,mac,rx_bytes,tx_bytes\r\n",
"\"00:27:22:6a:0a:05\",1343356445,1343356463,18,\"10.0.0.10\",\"10:93:e9:04:13:84\",78703,179219\r\n",
"\"00:27:22:50:ee:56\",1343356484,1343357535,1051,\"10.0.0.10\",\"10:93:e9:04:13:84\",1420152,25061430\r\n",
"\"00:27:22:50:f0:d4\",1343357585,1343357899,314,\"10.0.0.10\",\"10:93:e9:04:13:84\",221756,1981314\r\n",
"\"00:27:22:50:f0:d4\",1343357942,1343358609,667,\"10.0.0.10\",\"10:93:e9:04:13:84\",430617,2506751\r\n"
]
}
],
"prompt_number": 226
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from datetime import datetime\n",
"\n",
"session = pd.read_csv(fn, \n",
" converters={\n",
" 'assoc_time': lambda x: datetime.fromtimestamp(float(x)), \n",
" 'disassoc_time': lambda x: datetime.fromtimestamp(float(x))\n",
" })\n",
"\n",
"session"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<pre>\n",
"&lt;class 'pandas.core.frame.DataFrame'&gt;\n",
"Int64Index: 52742 entries, 0 to 52741\n",
"Data columns (total 8 columns):\n",
"ap_mac 52742 non-null values\n",
"assoc_time 52742 non-null values\n",
"disassoc_time 52742 non-null values\n",
"duration 52742 non-null values\n",
"ip 52325 non-null values\n",
"mac 52742 non-null values\n",
"rx_bytes 52742 non-null values\n",
"tx_bytes 52742 non-null values\n",
"dtypes: datetime64[ns](2), int64(3), object(3)\n",
"</pre>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 227,
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 52742 entries, 0 to 52741\n",
"Data columns (total 8 columns):\n",
"ap_mac 52742 non-null values\n",
"assoc_time 52742 non-null values\n",
"disassoc_time 52742 non-null values\n",
"duration 52742 non-null values\n",
"ip 52325 non-null values\n",
"mac 52742 non-null values\n",
"rx_bytes 52742 non-null values\n",
"tx_bytes 52742 non-null values\n",
"dtypes: datetime64[ns](2), int64(3), object(3)"
]
}
],
"prompt_number": 227
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"session.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ap_mac</th>\n",
" <th>assoc_time</th>\n",
" <th>disassoc_time</th>\n",
" <th>duration</th>\n",
" <th>ip</th>\n",
" <th>mac</th>\n",
" <th>rx_bytes</th>\n",
" <th>tx_bytes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 00:27:22:6a:0a:05</td>\n",
" <td>2012-07-27 10:34:05</td>\n",
" <td>2012-07-27 10:34:23</td>\n",
" <td> 18</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 78703</td>\n",
" <td> 179219</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 00:27:22:50:ee:56</td>\n",
" <td>2012-07-27 10:34:44</td>\n",
" <td>2012-07-27 10:52:15</td>\n",
" <td> 1051</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 1420152</td>\n",
" <td> 25061430</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 00:27:22:50:f0:d4</td>\n",
" <td>2012-07-27 10:53:05</td>\n",
" <td>2012-07-27 10:58:19</td>\n",
" <td> 314</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 221756</td>\n",
" <td> 1981314</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 00:27:22:50:f0:d4</td>\n",
" <td>2012-07-27 10:59:02</td>\n",
" <td>2012-07-27 11:10:09</td>\n",
" <td> 667</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 430617</td>\n",
" <td> 2506751</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 00:27:22:6a:0a:05</td>\n",
" <td>2012-07-27 22:09:52</td>\n",
" <td>2012-07-27 22:10:58</td>\n",
" <td> 66</td>\n",
" <td> 10.10.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 158716</td>\n",
" <td> 223996</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 228,
"text": [
" ap_mac assoc_time disassoc_time duration \\\n",
"0 00:27:22:6a:0a:05 2012-07-27 10:34:05 2012-07-27 10:34:23 18 \n",
"1 00:27:22:50:ee:56 2012-07-27 10:34:44 2012-07-27 10:52:15 1051 \n",
"2 00:27:22:50:f0:d4 2012-07-27 10:53:05 2012-07-27 10:58:19 314 \n",
"3 00:27:22:50:f0:d4 2012-07-27 10:59:02 2012-07-27 11:10:09 667 \n",
"4 00:27:22:6a:0a:05 2012-07-27 22:09:52 2012-07-27 22:10:58 66 \n",
"\n",
" ip mac rx_bytes tx_bytes \n",
"0 10.0.0.10 10:93:e9:04:13:84 78703 179219 \n",
"1 10.0.0.10 10:93:e9:04:13:84 1420152 25061430 \n",
"2 10.0.0.10 10:93:e9:04:13:84 221756 1981314 \n",
"3 10.0.0.10 10:93:e9:04:13:84 430617 2506751 \n",
"4 10.10.0.10 10:93:e9:04:13:84 158716 223996 "
]
}
],
"prompt_number": 228
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"GB = 1024**3\n",
"(session.groupby('mac').rx_bytes.sum()/GB).order(ascending=False).head(10)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 229,
"text": [
"mac\n",
"e4:ce:8f:2e:36:3e 184\n",
"c0:f8:da:64:39:05 126\n",
"d8:30:62:49:29:a7 107\n",
"00:22:5f:ab:19:0c 78\n",
"10:40:f3:9f:13:02 75\n",
"74:de:2b:4c:83:a1 66\n",
"d8:a2:5e:96:77:52 62\n",
"b8:8d:12:1d:a8:2a 52\n",
"28:37:37:1c:7e:96 52\n",
"74:de:2b:4c:4a:fa 51\n",
"Name: rx_bytes, dtype: int64"
]
}
],
"prompt_number": 229
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import json\n",
"\n",
"def get_users(fname):\n",
" raw_data = open(fname, 'r').readlines()\n",
" users = []\n",
" for line in raw_data:\n",
" rec = json.loads(line)\n",
" rec['_id'] = rec['_id']['$oid']\n",
" users.append(rec)\n",
" \n",
" return users\n",
"\n",
"fn = os.path.join(os.environ['HOME'], 'tmp', 'mondb', 'user_old.json')\n",
"\n",
"users = get_users(fn)\n",
"users[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 230,
"text": [
"{u'_id': u'5011fe25097fb0e448c129fc',\n",
" u'first_seen': 1343356452,\n",
" u'hostname': u'macbookair2',\n",
" u'is_guest': False,\n",
" u'last_seen': 1351045936,\n",
" u'mac': u'10:93:e9:04:13:84',\n",
" u'oui': u'Apple'}"
]
}
],
"prompt_number": 230
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"users = pd.DataFrame(get_users(fn))\n",
"users_info = users[['mac','hostname','oui']]\n",
"users_info.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mac</th>\n",
" <th>hostname</th>\n",
" <th>oui</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 10:40:f3:82:81:96</td>\n",
" <td> Sif</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 70:56:81:a7:e0:b5</td>\n",
" <td> lap3</td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 00:22:5f:b2:e9:e3</td>\n",
" <td> cbas-PC</td>\n",
" <td> LiteonTe</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 94:63:d1:77:0c:2b</td>\n",
" <td> NaN</td>\n",
" <td> SamsungE</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 231,
"text": [
" mac hostname oui\n",
"0 10:93:e9:04:13:84 macbookair2 Apple\n",
"1 10:40:f3:82:81:96 Sif Apple\n",
"2 70:56:81:a7:e0:b5 lap3 \n",
"3 00:22:5f:b2:e9:e3 cbas-PC LiteonTe\n",
"4 94:63:d1:77:0c:2b NaN SamsungE"
]
}
],
"prompt_number": 231
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"merged = pd.merge(session, users_info, how='left', on='mac')\n",
"\n",
"merged.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ap_mac</th>\n",
" <th>assoc_time</th>\n",
" <th>disassoc_time</th>\n",
" <th>duration</th>\n",
" <th>ip</th>\n",
" <th>mac</th>\n",
" <th>rx_bytes</th>\n",
" <th>tx_bytes</th>\n",
" <th>hostname</th>\n",
" <th>oui</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 00:27:22:6a:0a:05</td>\n",
" <td>2012-07-27 10:34:05</td>\n",
" <td>2012-07-27 10:34:23</td>\n",
" <td> 18</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 78703</td>\n",
" <td> 179219</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 00:27:22:50:ee:56</td>\n",
" <td>2012-07-27 10:34:44</td>\n",
" <td>2012-07-27 10:52:15</td>\n",
" <td> 1051</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 1420152</td>\n",
" <td> 25061430</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 00:27:22:50:f0:d4</td>\n",
" <td>2012-07-27 10:53:05</td>\n",
" <td>2012-07-27 10:58:19</td>\n",
" <td> 314</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 221756</td>\n",
" <td> 1981314</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 00:27:22:50:f0:d4</td>\n",
" <td>2012-07-27 10:59:02</td>\n",
" <td>2012-07-27 11:10:09</td>\n",
" <td> 667</td>\n",
" <td> 10.0.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 430617</td>\n",
" <td> 2506751</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 00:27:22:6a:0a:05</td>\n",
" <td>2012-07-27 22:09:52</td>\n",
" <td>2012-07-27 22:10:58</td>\n",
" <td> 66</td>\n",
" <td> 10.10.0.10</td>\n",
" <td> 10:93:e9:04:13:84</td>\n",
" <td> 158716</td>\n",
" <td> 223996</td>\n",
" <td> macbookair2</td>\n",
" <td> Apple</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 233,
"text": [
" ap_mac assoc_time disassoc_time duration \\\n",
"0 00:27:22:6a:0a:05 2012-07-27 10:34:05 2012-07-27 10:34:23 18 \n",
"1 00:27:22:50:ee:56 2012-07-27 10:34:44 2012-07-27 10:52:15 1051 \n",
"2 00:27:22:50:f0:d4 2012-07-27 10:53:05 2012-07-27 10:58:19 314 \n",
"3 00:27:22:50:f0:d4 2012-07-27 10:59:02 2012-07-27 11:10:09 667 \n",
"4 00:27:22:6a:0a:05 2012-07-27 22:09:52 2012-07-27 22:10:58 66 \n",
"\n",
" ip mac rx_bytes tx_bytes hostname oui \n",
"0 10.0.0.10 10:93:e9:04:13:84 78703 179219 macbookair2 Apple \n",
"1 10.0.0.10 10:93:e9:04:13:84 1420152 25061430 macbookair2 Apple \n",
"2 10.0.0.10 10:93:e9:04:13:84 221756 1981314 macbookair2 Apple \n",
"3 10.0.0.10 10:93:e9:04:13:84 430617 2506751 macbookair2 Apple \n",
"4 10.10.0.10 10:93:e9:04:13:84 158716 223996 macbookair2 Apple "
]
}
],
"prompt_number": 233
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"by_manuf = merged.groupby(['oui'])\n",
"by_manuf.rx_bytes.sum().order(ascending=False)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 234,
"text": [
"oui\n",
"Apple 1224188010811\n",
"LiteonTe 219301602245\n",
"HonHaiPr 165134894991\n",
"IntelCor 94147140139\n",
" 93730044646\n",
"Azurewav 36544724115\n",
"Intel 28150610086\n",
"QuantaMi 12225077812\n",
"SamsungE 11518174726\n",
"Universa 7850169414\n",
"GemtekTe 6717251583\n",
"AppleCom 5190734877\n",
"AskeyCom 4788876186\n",
"TwinhanT 2543054766\n",
"MurataMa 869801499\n",
"Micro-St 641332290\n",
"AsustekC 524644230\n",
"Htc 391229302\n",
"Nokia 354954836\n",
"Arcadyan 195070805\n",
"SonyEric 165185345\n",
"WistronN 103723073\n",
"Ieee-Sa 67233822\n",
"AmpakTec 64156617\n",
"Private 55478648\n",
"LgElectr 39357250\n",
"Rim 18683668\n",
"Motorola 11599839\n",
"AmigoTec 10588768\n",
"Research 10435559\n",
"Embedded 7439836\n",
"Zte 3598406\n",
"InproCom 2408011\n",
"HuaweiTe 2392642\n",
"Fujitsu 2312568\n",
"Palm 2008881\n",
"AirgoNet 1965687\n",
"Wistron 1726671\n",
"CamilleB 1011962\n",
"B-LinkEl 805403\n",
"Wearable 494603\n",
"NokiaDan 394262\n",
"ParagonT 48223\n",
"Name: rx_bytes, dtype: int64"
]
}
],
"prompt_number": 234
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.figure(figsize=(10,8))\n",
"by_manuf.rx_bytes.sum().order(ascending=False).plot(kind='bar')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 235,
"text": [
"<matplotlib.axes.AxesSubplot at 0x10789a2d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n18hPIVSQ/bn77rs1fvx459iOHj2qxx9/3OOTs23ixImaNGmSjh49ql27dmn79u0aMmSIlixZ4jXT\ntGlTrVy50ufveG7NmjVTs2bNFBsbq0KFCjm/z/b19jxJSEjQqVOntHTpUg0ePFhz5sxRkyZNNGXK\nFK+Zm266SUlJSbryyisl5ex/v3799OWXX3rNVKtWTW+++abq16+vSy65xHn/Nddck2fbadOmScp5\nHtiyZYv69Okjy7I0Z84c1axZU++9957XxynI9zkxMVGjRo3SZZddpkKFctp9vRV2tm3btumBBx7Q\ngQMHtHnzZm3cuFELFizQ008/7TVTrFgx58/y7NmzyszMVLFixZSenu41Ex8fr02bNqlmzZrOsUny\n2gYzZ84c9e7d2+99uX366af6z3/+o4MHD7q8qb23ce3Zs0dFixbVNddco5UrV2rFihWKjo5W9+7d\nPW5fkL9TuX333XfauXOn4uPjdfjwYR0/flyVKlXyun2zZs3UunVrNWjQwOXn2bNnzzzbns/zule+\nLlXwd+rYsaM1e/ZsKzY21rIsyzp79qxVs2ZNn5m6deu6/GtZllW7dm2fmREjRljjxo2z9u7da/3x\nxx/OD1/uvvtu68cff8zPbpyX6Ohoq3379tbkyZOto0eP/u2P50/u72vu/3u67a5mzZrWyZMnnad2\nbt261erWrZvPTKNGjaw9e/a4fO0aNWr4zLz33nvWddddZ91www1WVFSUFRUVZVWqVMln5umnn7bK\nly9vtW7d2oqLi3N+eBIbG+syT9w/fImNjbUOHz7s3J+lS5da8fHxHredOXOm1blzZ6tkyZJW586d\nnR9t2rSxbrzxxjzb16tXzzpz5kye+8+cOWPVqlXL57g8nW7r7/emZs2a1rlz55zbHThwwGrXrp3P\nzBNPPGFVrFjR6tSpk8s++eJpHN5OD37wwQetoUOHunw8+OCD1g033GAVKlQo6PvjaRy+Tl22rJz9\nOX36tMuc9vfzSUhIsLp06WJNnz7dSkpKspKSkqxPP/3U6/b16tXz+fU8scdgP99mZGRYLVq08Jkp\nyP43btw44LE1btzYOnv2rPP22bNn/X6dgnyfq1SpYh0+fDigsbVq1cpatWqV83Gys7P9PkfllpWV\nZc2bN88aMWKEz+1iYmKs7OzsfH9dT8/H/p6jK1eubG3ZsiVfX3/MmDFW5cqVrcqVK1sjR460mjRp\nYo0YMcKKi4uzhg0blu9x5teoUaOszp07W1WrVrUsy7L2799vNW/e3GfG31zM7Xye1725YMt2R44c\nUZ8+ffTSSy9JkgoXLqzISN/DufTSS12OHBw+fNilSvdk9uzZioiI0P/93/857/P3amPVqlX66KOP\nVLFiRRUtWtSZ2bhxo9/9CsSOHTv0448/avbs2XrhhRdUo0YN9enTR3fddZfH7U+cOKHXX39de/fu\n1aRJk7Rjxw5t27ZNnTt3zrPt3LlzfT52sA8HX3755c5lodOnT6t69eratm2b35z7kpa/OTBu3Dj9\n8ssvHl/JevPxxx9r165dziMvvvz6669q0KCBx8/5mzeFCxfWNddco+zsbGVlZalt27Zel9+aN2+u\nMmXK6PDhw3r88cedRw+KFy+u2rVr59n+3LlzHsd/6aWXuix3eHLNNddo/vz5uu222yRJ8+fP9/v9\nK1KkiC655BJFRkbqzz//VOnSpV0uSeLJvHnztG3bNl122WU+t8stOztb2dnZzt/jrKwsZWZmetx2\nwoQJLrmZM2fq5ZdfVtOmTTVy5Mig749lWTp69KjzqObRo0ddnn88ueyyy1z2/9y5c36PKJ0+fVpX\nX311nqO03n5H77jjDk2cOFFdunRxeSxfR1/t380rrrhCqampuvrqq3XgwAGf47rkkku0Z88eVaxY\nUVLOMpm351v76H7btm01fPhw9ejRw2VsvpZsjh07pvT0dF199dWSpIyMDL9vm1GQ73PlypWd34f8\nOnnypJo0aeK8HRER4bd9IbdChQqpW7duGj16tPNvnSeNGjXSli1bVLNmTZ9fb/HixVq0aJFSU1M1\nbNgw5+9+RkaG33Fdf/31iomJyde4Z82apS1btujkyZO64YYbdODAARUtWlTnzp1TnTp1PGZeeeUV\nPfHEE5LyHgXzt2w2b948rVu3zvncW65cOWVkZPgcY+fOnfXFF1/o1ltv9bs/5/O87s0FK56KFSum\nP/74w3l71apVKlmypMdtBw4cqGnTpumhhx5S9+7ddejQIT311FNKSkrSf//7X5+PU5AriNqHpe1f\nRn9/nM5HkyZN1KRJE40cOVL//ve/NWDAAK/FU3x8vBo0aKAffvhBklS2bFn16tXLY/HUq1cv1a1b\n1+tE9/TE/Oeff2ru3LmyLMv5f0nO275UqFBBaWlp6tatm9q3b69SpUp57alZtWqVmjZtqhtuuEHf\n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\nzZw7d05ffvmlZs2apV9++UUvvfSSz2URKefMLvdflpIlS6pBgwaqW7eux0ydOnW0du1apaSk6JZb\nbtFtt92mzZs3a9GiRXm2vfLKK9WqVSuPX8fbESFbQQqvRo0aac2aNQFltm3bpldffTXPabCezh4s\nXrx4nlOtbd4OI+c+o+7GG2/U4MGD1a9fP0nejyZK0h9//JHnSJZ9ZMnd1q1btWXLFucrR/t3Lj09\nXePGjfN4FmBBztIsiN69e2vOnDmqVatWnsfxVQj54ulVeuPGjfXZZ5+pbNmyWr9+vdq1a6ennnpK\nGzZs0KWXXqrJkyd7/XqjR4/W2rVrtW3bNm3fvl2pqam6/fbbnUvNnuT37EkpZ3lq2bJlSkxM1P33\n3++8v3jx4urSpYvXI8XdunXT5s2b1bZtW79H+HL/EfTE19Fk++zmZcuWaevWrfk6u9nTvvr7nS3I\n4wTyfbY99dRTqlixorp27eq3V6x06dLq27ev199pX0dTn3jiCT399NMqUqSIbr75Zm3YsEFvvPGG\n13YMSXrggQd07NgxdenSxe+SmpTzImbp0qVq27at8/tQq1Ytn2eJ79u3T8OGDXMuCbdu3Vrjx4/P\n85ZrBXXJJZc4Lzlz6tQpl6XKU6dOuZwdHQz2Gd779u1TvXr18nWGdyDP6/6EvOdp4cKFPn+ZPU2W\n6OjogJ+0c/fvuN/Oz/Uzchc1gRQ4gThy5IheeeUVbdmyRadOnZLk+wfZoUMH1a9f39knM378eK+X\nOliyZIlmz56t1atXq3379nr44YfVqFGjfI1r7dq1+umnn9SlSxdZlqUvvvhCsbGxeu+999SrVy+N\nGDEiT6ZQoUKKjIzU3Llz9dBDD+mhhx5SvXr1PH79a6+91tkk7c7f0bdOnTopMTExX0+AtlatWunJ\nJ5/Mk/F1FKV3794aMmSIyxKSt7G1a9dO//vf/9SzZ0/16dPH2WDrS/ny5fX222+rXLlyWrdunbOg\nta9X402XLl20ePFiZ3/gli1b1Lt3b4+F0LZt27Rw4UL9+eefWrhwofP+4sWLa9KkSR6/vn3/0qVL\n88z73K/uPNm+fbueeuqpPPPZ0yH+8ePHS5K++OKLfPcU+rsulSenT59W2bJlJUkfffSR7r33Xj32\n2GPKzs72uwwZSBPrrFmzNHPmTO3evdul9yYjI8PrMnSbNm3Upk0bxcfH52vO2Lp166Zu3bq53Odt\nbno6GphfP/74o9atW+f8Pb7qqqu8NvPbsrOzdfr0aV1++eWScv5onj17NmiPU5Dvs23mzJmKiIhw\nadz2Nj+LFCni0lNk83QUxt2XX36pV155RfPmzVNUVJTmzp2rVq1a+SyeTp48qUsvvdR55MXm7e9U\n4cKF8xzV9/d3Kj4+Xv3799cnn3wiSZoxY4bi4+P19ddfe80EckkhfydTeJL7sg7ufF1GQcp5Dlmz\nZo2aNWumZcuW6ddff9WTTz7p8/ECeV73q0Dn6IWYv1MwPRkwYIA1cOBA54f7bV9ee+01KzY21ho1\napT17LPPWrVr17Zef/31gg7fq5tuusmaNGmSVa1aNcvhcFgDBw60hg8f7nV7T6ewe7rPsiwrIiLC\nql27tsfTux966CGf42rZsqWVkZHhvJ2RkWG1atXKOnHihFW9enWPmUaNGlkzZsywatasaf3222+W\nZVleLz1RkJ+nrWLFis5LFOT3UgVt2rRxuUSBr0sV2OrXrx/QuNLS0qwpU6ZYHTp0sFq3bm1NmDDB\n5ymwBw4csO677z6ra9eu1pdffum8f+nSpda4ceO85j7//HOrVatWVkZGhvXTTz9ZNWrUsNatW+dz\nbD/88ENA+2JZVp5LLGRkZFht27b1mWnevLn19ddfW7GxsVZKSoo1atQo6+mnn/a6fWZmpt+fgydJ\nSUlWdHS0Vbx4catYsWJWsWLFrOLFi3vcNvfp63Xr1rUWL17s8XOeNGrUyJmzLMs6fvy481R/dykp\nKdayZcusJk2aWA6Hw1q2bJm1bNky66effrIyMzN9Ps5NN91kpaWlOW//8ccfVocOHXxmApWWlmY9\n8sgjVv369a369etbjz76qHXs2DGfmcaNG1vnzp1z7v+hQ4f8/u6+9NJLVvPmza3JkydbkyZNspo3\nb2699NJLQXucd99911q6dKnL99nhcFg//fST9fHHH/t8nECcz3OUfSmDe+65x1q0aJFlWf4vDRKo\n+Ph466OPPrJq1aplbd++3Ro6dKiVkJDgM+NpDP7GVZBLCk2ePDnPff4u1VAQDRo0sCwr55IFp06d\nsiwr55IPvgT6vO7LBb1UwZgxY7RixQpnU/azzz7r8dWDr1M8vTmfV1yPPvqo2rRp4xzbtGnTvB5F\nOR9//PGHBg0apLfeesv5KtTT8uSpU6d08uRJHT58WEePHnXen56ertTUVI9f+/3338/zisnmr9I+\n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\n+HycrKwsHThwwOXKvb5eodx111369ddf1bVrV5cjCN6WrWyBHt0I5AnQFsir7tx++eUX5xvJ2jx9\nr+2L+3lbDs1v0f3OO+94fE83dydPngzo+i5S/osn97OzLLcGWV9nZ23atMnjkpInf/75p9cjf7mv\nau1tjFL+rlfjib/vxaWXXuo8QuXO36tU+xIQueekv7PApPxdT+n48eNKTEzUrl27VKtWLd1///2a\nP3++Ro4cqejoaJ9nqa5fv153332382K3pUqV0gcffODxj2BBzm62VatWTTt37szXuzPYRwEsy9Le\nvXtd3t+wYsWKHo/y5v7ZZWZm6plnntG8efM0ffp03X///T5/rvXr19cnn3yi6OhoSTmXV+ndu3dQ\nihop51pVv//+u/r376+ZM2e6nN16//3369dff/Waze+L3KSkpDxnqe/bt0+vv/66srKyvLZxSAV7\ngSvl/5JC7kd13J87vB21l3IOXMydO9dlDvTs2dPji/w///xTt912m/bu3as6derIsixt2rRJN9xw\ng+bPn+/zzaELsnLhzQXreZo4caLefPNNZ19Mdna2ihYtqokTJ3rtsi/Ipf9PnTqlKVOmOCelrwrd\n11sC5GfNNlC1atVS6dKlnVfxbdmypc+lpDvvvFO//fab6tat63LkzVfxlN++qtzefvttjRkzRqVL\nl3Z5HF/FY5UqVVSlShVlZ2fr+PHjPr9+7qMbTZs2dR7diIiI0Ny5c30eQYiMjNTOnTtdngD9rcEX\nKVJE3333ncurbrvA88bbG8l6+l4XpKcqtwMHDmjNmjWqUKGCDh065PNien/39V3Op1dwyJAhOnPm\njPOsHl9zOS4uzvmHrl27di5v6Nq9e3eff9DOZ4z5cT5XIy5atKjOnDmjOnXq6IknntD111/v92zC\n7OxsJScnu1znaPXq1XmO3tx9990qUaKEmjVrpq+++krTpk3T5ZdfrpkzZ3q9hIiU80Loo48+0saN\nG53Fk6+fTUHObrbl91p60v/vXxw8eLC6d+/ubJdYvHix5s2b5zdfuHBh56VX+vbtq8OHD/vcfty4\ncbrxxhudPZcpKSl+C+5A3hLryy+/1AcffKDU1FQ99thjzvuLFy/u8+raktS/f3/16dNHn3/+ucuL\nXHe5X1zu2rVLL774opYvX64nn3zS4xlwuVWqVEktW7bM1wtcb5cUso8EeXqOLkg/qt2OULJkSdWs\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x10789b910>"
]
}
],
"prompt_number": 235
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Where to go from here"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"url=\"http://ipython.org/notebook.html\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"http://ipython.org/notebook.html\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 236,
"text": [
"<IPython.core.display.HTML at 0x1078a3990>"
]
}
],
"prompt_number": 236
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"url=\"http://continuum.io/downloads\"\n",
"HTML('<iframe src=\"%s\" width=800 height=400></iframe>' % url)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=\"http://continuum.io/downloads\" width=800 height=400></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 237,
"text": [
"<IPython.core.display.HTML at 0x10789d610>"
]
}
],
"prompt_number": 237
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Terminology\n",
"\n",
"\n",
"\n",
"\n",
"Core functionality\n",
"\n",
"* [IPython](http://ipython.org/) - Enhanced interactive shell and notebook\n",
"* [NumPy](http://www.numpy.org/) - Fundamental package for scientific computing (N-dimensional array object, integration with C/C++/Fortran code, linear algebra, random numbers, FFT, ... )\n",
"* [Matplotlib](http://matplotlib.org/) - Fundamental 2D plotting library\n",
"\n",
"(`pylab` is a helper package created to facilitate interactive work inside `ipython`).\n",
"\n",
"Main packages/libraries\n",
"\n",
"* [SciPy library](http://docs.scipy.org/doc/scipy/reference/) - Collection of libraries for scientific computing (Integration, Interpolation, Optimization, Special functions, ...)\n",
"* [Pandas](http://pandas.pydata.org/) - Series, DataFrame and tons of other goodies\n",
"* [SymPy](http://sympy.org/) - Symbolic mathematics\n",
"* [Statsmodels](http://statsmodels.sourceforge.net/) - Statistics in Python\n",
"* [scikit-learn](http://scikit-learn.org/) - Machine Learning\n",
"* [scikit-image](http://scikit-image.org/) - Image processing\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def version():\n",
" import sys, IPython, numpy, matplotlib, pandas\n",
" \n",
" print 'Python %d.%d.%d' % (sys.version_info.major, sys.version_info.minor, sys.version_info.micro)\n",
" print 'Ipython', IPython.__version__\n",
" print 'NumPy', np.version.version\n",
" print 'MPL', matplotlib.__version__\n",
" print 'Pandas', pandas.__version__\n",
" \n",
"version()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Python 2.7.5\n",
"Ipython 1.1.0\n",
"NumPy 1.7.1\n",
"MPL 1.3.0\n",
"Pandas 0.12.0\n"
]
}
],
"prompt_number": 70
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment