Last active
August 29, 2015 14:05
-
-
Save felixlaumon/7e4d484a921bfccf935c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "", | |
| "signature": "sha256:bb05f40fd96ef1df5c5e9277704d3487a549a10b6e1454d4d821aa31b8d282ae" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "http://nbviewer.ipython.org/gist/felixlaumon/7e4d484a921bfccf935c\n", | |
| "\n", | |
| "https://gist.github.com/felixlaumon/7e4d484a921bfccf935c" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "matrix = [\n", | |
| " [1,3,9,2],\n", | |
| " [2,4,6,8]\n", | |
| "]\n", | |
| "\n", | |
| "vector = [2,3,6,5]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 4, | |
| "metadata": {}, | |
| "source": [ | |
| "1) Complete your Vector/Matrix multiplication function" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def dot_product (a, b):\n", | |
| " assert len(a) is len(b)\n", | |
| " return sum(map(lambda x: x[0] * x[1], zip(a, b)))\n", | |
| "\n", | |
| "def mv_multiple (matrix, vector):\n", | |
| " return [dot_product(row, vector) for row in matrix]\n", | |
| "\n", | |
| "assert mv_multiple(matrix, vector) == [75, 92]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 5 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from itertools import starmap, izip\n", | |
| "from operator import mul\n", | |
| "\n", | |
| "def dot_product (a, b):\n", | |
| " assert len(a) is len(b)\n", | |
| " return sum(starmap(mul, izip(a, b)))\n", | |
| "\n", | |
| "def mv_multiple2 (matrix, vector):\n", | |
| " return [dot_product(row, vector) for row in matrix]\n", | |
| "\n", | |
| "assert mv_multiple2(matrix, vector) == [75, 92]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 6 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 4, | |
| "metadata": {}, | |
| "source": [ | |
| "2) Add a function which does Matrix * Matrix multiplication" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def matrix_transpose (m):\n", | |
| " # OMFG\n", | |
| " # http://stackoverflow.com/questions/4937491/matrix-transpose-in-python\n", | |
| " return zip(*m)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 7 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Version that resuses matrix * vector multiplication\n", | |
| "def matrix_multiply (matrix1, matrix2):\n", | |
| " # TODO should be unnecessary to check size of matrix1 and matrix2 here?\n", | |
| " # Because already handled by dot_product?\n", | |
| " matrix2 = matrix_transpose(matrix2)\n", | |
| " return [mv_multiple(matrix1, m2) for m2 in matrix2]\n", | |
| "\n", | |
| "matrix1 = [\n", | |
| " [1,3,9,2],\n", | |
| " [2,4,6,8]\n", | |
| "]\n", | |
| "\n", | |
| "matrix2 = [\n", | |
| " [2,1],\n", | |
| " [3,2],\n", | |
| " [6,0],\n", | |
| " [5,4]\n", | |
| "]\n", | |
| "\n", | |
| "assert matrix_multiply(matrix, matrix2) == [[75, 92], [15, 42]]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 8 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Version that only relies on dot product\n", | |
| "def matrix_multiply2 (matrix1, matrix2):\n", | |
| " matrix2 = matrix_transpose(matrix2)\n", | |
| " return [[dot_product(v1, v2) for v1 in matrix1 ] for v2 in matrix2]\n", | |
| "\n", | |
| "matrix1 = [\n", | |
| " [1,3,9,2],\n", | |
| " [2,4,6,8]\n", | |
| "]\n", | |
| "\n", | |
| "matrix2 = [\n", | |
| " [2,1],\n", | |
| " [3,2],\n", | |
| " [6,0],\n", | |
| " [5,4]\n", | |
| "]\n", | |
| "\n", | |
| "assert matrix_multiply2(matrix, matrix2) == [[75, 92], [15, 42]]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 9 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 4, | |
| "metadata": {}, | |
| "source": [ | |
| "3) Can you find a way to generate an identity matrix for any given number with a python function?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def i_matrix_row (n, i):\n", | |
| " result = [0] * n\n", | |
| " result[i] = 1\n", | |
| " return result\n", | |
| "\n", | |
| "def i_matrix (n):\n", | |
| " return [i_matrix_row(n, i) for i in range(n)]\n", | |
| "\n", | |
| "assert i_matrix(4) == [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 10 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def i_matrix2 (n):\n", | |
| " return [[int(i == j) for j in range(n)] for i in range(n)]\n", | |
| "\n", | |
| "assert i_matrix2(4) == [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 11 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 4, | |
| "metadata": {}, | |
| "source": [ | |
| "4) Revise the original NYT script to summarizes the data in such a way that you have average and max values (\u201cavg_click\u201d, \u201cavg_impressions\u201d, \u201cmax_click\u201d, \u201cmax_impressions\u201d) for each unique combination of \u201cage\u201d, \u201cgender\u201d, \u201csigned_in\u201d. so one example row would have the data for age 14 , Male, is_signed_in." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from pandas import DataFrame, read_csv, concat\n", | |
| "import numpy as np\n", | |
| "# TODO is there a better way to lower case the header?\n", | |
| "df = read_csv('nytimes.csv', header=0, names=['age', 'gender', 'impressions', 'click', 'signed_in'])\n", | |
| "df.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>age</th>\n", | |
| " <th>gender</th>\n", | |
| " <th>impressions</th>\n", | |
| " <th>click</th>\n", | |
| " <th>signed_in</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td> 36</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td> 73</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td> 30</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td> 49</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td> 47</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 11</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 1</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 12, | |
| "text": [ | |
| " age gender impressions click signed_in\n", | |
| "0 36 0 3 0 1\n", | |
| "1 73 1 3 0 1\n", | |
| "2 30 0 3 0 1\n", | |
| "3 49 1 3 0 1\n", | |
| "4 47 1 11 0 1" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 12 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "headers = ['age', 'gender', 'signed_in', 'avg_click', 'avg_impressions', 'max_click', 'max_impression']\n", | |
| "grouped = df.groupby(['age', 'gender', 'signed_in'])\n", | |
| "grouped_click = grouped['click']\n", | |
| "grouped_impressions = grouped['impressions']\n", | |
| "\n", | |
| "# TODO how to rename the column here instead of setting columns below?\n", | |
| "avg_click = grouped_click.agg(np.mean)\n", | |
| "avg_impresssions = grouped_impressions.agg(np.mean)\n", | |
| "max_click = grouped_click.agg(np.max)\n", | |
| "max_impressions = grouped_impressions.agg(np.max)\n", | |
| "\n", | |
| "result = concat([avg_click, avg_impresssions, max_click, max_impressions], axis=1)\n", | |
| "result.columns = ['avg_click', 'avg_impressions', 'max_click', 'max_impressions']\n", | |
| "result\n", | |
| "\n", | |
| "# TODO how to fill the rest of the grouped column with empty data? (e.g. age = 1, gender = 1, signed_in = 0)" | |
| ], | |
| "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></th>\n", | |
| " <th></th>\n", | |
| " <th>avg_click</th>\n", | |
| " <th>avg_impressions</th>\n", | |
| " <th>max_click</th>\n", | |
| " <th>max_impressions</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>age</th>\n", | |
| " <th>gender</th>\n", | |
| " <th>signed_in</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>0</th>\n", | |
| " <td> 0.142080</td>\n", | |
| " <td> 4.999657</td>\n", | |
| " <td> 4</td>\n", | |
| " <td> 18</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">7 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.750000</td>\n", | |
| " <td> 5.000000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 6.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">8 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 6.333333</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 10</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.333333</td>\n", | |
| " <td> 6.250000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 11</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">9 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.125000</td>\n", | |
| " <td> 5.687500</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 10</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.093750</td>\n", | |
| " <td> 5.437500</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">10 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.125000</td>\n", | |
| " <td> 5.218750</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 11</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.185185</td>\n", | |
| " <td> 4.654321</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 11</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">11 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.129032</td>\n", | |
| " <td> 4.913978</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 13</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.126316</td>\n", | |
| " <td> 5.184211</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 13</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">12 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.150000</td>\n", | |
| " <td> 4.755000</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.160622</td>\n", | |
| " <td> 4.953368</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 13</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">13 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.145455</td>\n", | |
| " <td> 4.987879</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 12</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.150892</td>\n", | |
| " <td> 4.998628</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 15</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">14 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.131579</td>\n", | |
| " <td> 4.990602</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 14</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.134907</td>\n", | |
| " <td> 5.055649</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 15</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">15 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.176471</td>\n", | |
| " <td> 4.964706</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 15</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.137892</td>\n", | |
| " <td> 4.934473</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 14</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">16 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.159048</td>\n", | |
| " <td> 4.914286</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.148349</td>\n", | |
| " <td> 5.023402</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">17 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.157853</td>\n", | |
| " <td> 5.139423</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 12</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.150462</td>\n", | |
| " <td> 5.023660</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 15</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">18 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.080964</td>\n", | |
| " <td> 5.009084</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.087483</td>\n", | |
| " <td> 4.950899</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 17</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">19 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.045515</td>\n", | |
| " <td> 5.075748</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 17</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.050014</td>\n", | |
| " <td> 4.964561</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">20 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.049274</td>\n", | |
| " <td> 4.962200</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 15</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.043865</td>\n", | |
| " <td> 4.976882</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 16</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.049164</td>\n", | |
| " <td> 5.058863</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 14</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>...</th>\n", | |
| " <th>...</th>\n", | |
| " <th>...</th>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">90 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.173333</td>\n", | |
| " <td> 5.040000</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 10</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.225806</td>\n", | |
| " <td> 5.193548</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 10</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">91 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.085106</td>\n", | |
| " <td> 4.659574</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 12</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.080000</td>\n", | |
| " <td> 4.440000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 13</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">92 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.060606</td>\n", | |
| " <td> 4.696970</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.212121</td>\n", | |
| " <td> 5.060606</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 14</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">93 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.250000</td>\n", | |
| " <td> 4.928571</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 5.285714</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">94 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.153846</td>\n", | |
| " <td> 5.192308</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.347826</td>\n", | |
| " <td> 4.608696</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">95 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.136364</td>\n", | |
| " <td> 4.863636</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.153846</td>\n", | |
| " <td> 5.076923</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">96 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.058824</td>\n", | |
| " <td> 5.235294</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 10</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 5.500000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">97 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.142857</td>\n", | |
| " <td> 4.714286</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.142857</td>\n", | |
| " <td> 5.142857</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">98 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.222222</td>\n", | |
| " <td> 4.111111</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 4.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">99 </th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.200000</td>\n", | |
| " <td> 5.800000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 8.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 12</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">100</th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 2.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.333333</td>\n", | |
| " <td> 2.666667</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">101</th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 3.500000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 4.500000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>102</th>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 4.500000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">103</th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 4.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 3.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>104</th>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 1.000000</td>\n", | |
| " <td> 6.000000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>107</th>\n", | |
| " <th>1</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.500000</td>\n", | |
| " <td> 4.500000</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>108</th>\n", | |
| " <th>0</th>\n", | |
| " <th>1</th>\n", | |
| " <td> 0.000000</td>\n", | |
| " <td> 3.000000</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 3</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>197 rows \u00d7 4 columns</p>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 13, | |
| "text": [ | |
| " avg_click avg_impressions max_click max_impressions\n", | |
| "age gender signed_in \n", | |
| "0 0 0 0.142080 4.999657 4 18\n", | |
| "7 0 1 0.750000 5.000000 1 7\n", | |
| " 1 1 0.000000 6.000000 0 6\n", | |
| "8 0 1 0.000000 6.333333 0 10\n", | |
| " 1 1 0.333333 6.250000 1 11\n", | |
| "9 0 1 0.125000 5.687500 1 10\n", | |
| " 1 1 0.093750 5.437500 1 9\n", | |
| "10 0 1 0.125000 5.218750 1 11\n", | |
| " 1 1 0.185185 4.654321 1 11\n", | |
| "11 0 1 0.129032 4.913978 2 13\n", | |
| " 1 1 0.126316 5.184211 1 13\n", | |
| "12 0 1 0.150000 4.755000 2 16\n", | |
| " 1 1 0.160622 4.953368 2 13\n", | |
| "13 0 1 0.145455 4.987879 2 12\n", | |
| " 1 1 0.150892 4.998628 2 15\n", | |
| "14 0 1 0.131579 4.990602 2 14\n", | |
| " 1 1 0.134907 5.055649 3 15\n", | |
| "15 0 1 0.176471 4.964706 2 15\n", | |
| " 1 1 0.137892 4.934473 3 14\n", | |
| "16 0 1 0.159048 4.914286 2 16\n", | |
| " 1 1 0.148349 5.023402 3 16\n", | |
| "17 0 1 0.157853 5.139423 2 12\n", | |
| " 1 1 0.150462 5.023660 3 15\n", | |
| "18 0 1 0.080964 5.009084 2 16\n", | |
| " 1 1 0.087483 4.950899 2 17\n", | |
| "19 0 1 0.045515 5.075748 2 17\n", | |
| " 1 1 0.050014 4.964561 2 16\n", | |
| "20 0 1 0.049274 4.962200 2 15\n", | |
| " 1 1 0.043865 4.976882 2 16\n", | |
| "21 0 1 0.049164 5.058863 2 14\n", | |
| "... ... ... ... ...\n", | |
| "90 0 1 0.173333 5.040000 2 10\n", | |
| " 1 1 0.225806 5.193548 1 10\n", | |
| "91 0 1 0.085106 4.659574 1 12\n", | |
| " 1 1 0.080000 4.440000 1 13\n", | |
| "92 0 1 0.060606 4.696970 1 9\n", | |
| " 1 1 0.212121 5.060606 1 14\n", | |
| "93 0 1 0.250000 4.928571 1 8\n", | |
| " 1 1 0.000000 5.285714 0 8\n", | |
| "94 0 1 0.153846 5.192308 2 9\n", | |
| " 1 1 0.347826 4.608696 2 9\n", | |
| "95 0 1 0.136364 4.863636 1 9\n", | |
| " 1 1 0.153846 5.076923 1 9\n", | |
| "96 0 1 0.058824 5.235294 1 10\n", | |
| " 1 1 0.000000 5.500000 0 9\n", | |
| "97 0 1 0.142857 4.714286 1 6\n", | |
| " 1 1 0.142857 5.142857 1 9\n", | |
| "98 0 1 0.222222 4.111111 1 7\n", | |
| " 1 1 0.000000 4.000000 0 7\n", | |
| "99 0 1 0.200000 5.800000 1 7\n", | |
| " 1 1 0.000000 8.000000 0 12\n", | |
| "100 0 1 0.000000 2.000000 0 2\n", | |
| " 1 1 0.333333 2.666667 1 4\n", | |
| "101 0 1 0.000000 3.500000 0 5\n", | |
| " 1 1 0.000000 4.500000 0 5\n", | |
| "102 1 1 0.000000 4.500000 0 6\n", | |
| "103 0 1 0.000000 4.000000 0 4\n", | |
| " 1 1 0.000000 3.000000 0 3\n", | |
| "104 1 1 1.000000 6.000000 1 6\n", | |
| "107 1 1 0.500000 4.500000 1 5\n", | |
| "108 0 1 0.000000 3.000000 0 3\n", | |
| "\n", | |
| "[197 rows x 4 columns]" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 13 | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment