Skip to content

Instantly share code, notes, and snippets.

@felixlaumon
Last active August 29, 2015 14:05
Show Gist options
  • Select an option

  • Save felixlaumon/7e4d484a921bfccf935c to your computer and use it in GitHub Desktop.

Select an option

Save felixlaumon/7e4d484a921bfccf935c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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