Untitled.ipynb
This file contains 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
{ | |
"cells": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Наука о данных\n### Совместный бакалавриат ВШЭ-РЭШ, 2021-2022 учебный год\n_Илья Щуров_\n\n[Страница курса](http://math-info.hse.ru/s21/j)" | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "duplicate-mining", | |
"cell_type": "code", | |
"source": "import pandas as pd", | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "heated-digest", | |
"cell_type": "code", | |
"source": "gradebook = pd.DataFrame([['Alice', 'Algebra', 4],\n ['Alice', 'Geometry', 5],\n ['Bob', 'Algebra', 3],\n ['Bob', 'Geometry', 5],\n ['Claudia', 'Algebra', 4],\n ['Claudia', 'Geometry', 3]\n ],\n columns=['student', 'course', 'grade']\n )", | |
"execution_count": 6, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "english-communication", | |
"cell_type": "code", | |
"source": "gradebook", | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>course</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alice</td>\n <td>Algebra</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Alice</td>\n <td>Geometry</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Bob</td>\n <td>Algebra</td>\n <td>3</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Bob</td>\n <td>Geometry</td>\n <td>5</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Claudia</td>\n <td>Algebra</td>\n <td>4</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Claudia</td>\n <td>Geometry</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student course grade\n0 Alice Algebra 4\n1 Alice Geometry 5\n2 Bob Algebra 3\n3 Bob Geometry 5\n4 Claudia Algebra 4\n5 Claudia Geometry 3" | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "blessed-position", | |
"cell_type": "code", | |
"source": "(gradebook\n .pivot(index='student', columns='course', values='grade')\n .query('Geometry > Algebra')\n .index\n)", | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "Index(['Alice', 'Bob'], dtype='object', name='student')" | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "specified-pioneer", | |
"cell_type": "code", | |
"source": "(gradebook\n .pivot(index='student', columns='course', values='grade')\n [lambda x: x['Geometry'] > x['Algebra']]\n .index\n)", | |
"execution_count": 11, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "Index(['Alice', 'Bob'], dtype='object', name='student')" | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "olive-crown", | |
"cell_type": "code", | |
"source": "(gradebook\n .pivot(index='student', columns='course', values='grade')\n .mean(axis=0)\n)", | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "course\nAlgebra 3.666667\nGeometry 4.333333\ndtype: float64" | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "native-nomination", | |
"cell_type": "code", | |
"source": "(gradebook\n .pivot(index='student', columns='course', values='grade')\n .mean(axis=1)\n)", | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "student\nAlice 4.5\nBob 4.0\nClaudia 3.5\ndtype: float64" | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "placed-attribute", | |
"cell_type": "code", | |
"source": "gradebook.groupby('course')['grade'].mean()", | |
"execution_count": 16, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "course\nAlgebra 3.666667\nGeometry 4.333333\nName: grade, dtype: float64" | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "buried-yukon", | |
"cell_type": "code", | |
"source": "gradebook = pd.DataFrame([['Alice', 'Algebra', 4],\n ['Alice', 'Geometry', 5],\n ['Bob', 'Algebra', 3],\n ['Claudia', 'Algebra', 4],\n ['Claudia', 'Geometry', 3]\n ],\n columns=['student', 'course', 'grade']\n )", | |
"execution_count": 17, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "limited-travel", | |
"cell_type": "code", | |
"source": "gradebook.pivot(index='student', columns='course', values='grade')", | |
"execution_count": 21, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4.0</td>\n <td>5.0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>3.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>Claudia</th>\n <td>4.0</td>\n <td>3.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course Algebra Geometry\nstudent \nAlice 4.0 5.0\nBob 3.0 NaN\nClaudia 4.0 3.0" | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "starting-accuracy", | |
"cell_type": "code", | |
"source": "(gradebook.pivot(index='student', columns='course', values='grade')\n .mean(axis=0))", | |
"execution_count": 20, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "course\nAlgebra 3.666667\nGeometry 4.000000\ndtype: float64" | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "positive-kingston", | |
"cell_type": "code", | |
"source": "(gradebook.groupby('course')['grade'].mean())", | |
"execution_count": 23, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "course\nAlgebra 3.666667\nGeometry 4.000000\nName: grade, dtype: float64" | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "assured-lambda", | |
"cell_type": "code", | |
"source": "gradebook = pd.DataFrame([['Alice', 'Algebra', 4],\n ['Alice', 'Geometry', 5],\n ['Bob', 'Algebra', 3],\n ['Bob', 'Geometry', 4],\n ['Bob', 'Geometry', 5],\n ['Claudia', 'Algebra', 4],\n ['Claudia', 'Geometry', 3]\n ],\n columns=['student', 'course', 'grade']\n )", | |
"execution_count": 24, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "respected-spectrum", | |
"cell_type": "code", | |
"source": "(gradebook.pivot(index='student', columns='course', values='grade'))", | |
"execution_count": 25, | |
"outputs": [ | |
{ | |
"ename": "ValueError", | |
"evalue": "Index contains duplicate entries, cannot reshape", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m/var/folders/h2/9nyrt4p55kq6pdvqg02_zmj40000gn/T/ipykernel_34981/2306497833.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0mgradebook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpivot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'student'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'course'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'grade'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mpivot\u001b[0;34m(self, index, columns, values)\u001b[0m\n\u001b[1;32m 7791\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpivot\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpivot\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7792\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 7793\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpivot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7794\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7795\u001b[0m _shared_docs[\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/reshape/pivot.py\u001b[0m in \u001b[0;36mpivot\u001b[0;34m(data, index, columns, values)\u001b[0m\n\u001b[1;32m 515\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 516\u001b[0m \u001b[0mindexed\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_constructor_sliced\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_values\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmultiindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 517\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mindexed\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcolumns_listlike\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 518\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/series.py\u001b[0m in \u001b[0;36munstack\u001b[0;34m(self, level, fill_value)\u001b[0m\n\u001b[1;32m 4079\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0munstack\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4080\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4081\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0munstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4082\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4083\u001b[0m \u001b[0;31m# ----------------------------------------------------------------------\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/reshape/reshape.py\u001b[0m in \u001b[0;36munstack\u001b[0;34m(obj, level, fill_value)\u001b[0m\n\u001b[1;32m 458\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_1d_only_ea_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_unstack_extension_series\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 460\u001b[0;31m unstacker = _Unstacker(\n\u001b[0m\u001b[1;32m 461\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlevel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstructor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_constructor_expanddim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 462\u001b[0m )\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/reshape/reshape.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, index, level, constructor)\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Unstacked DataFrame is too big, causing int32 overflow\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 133\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_selectors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 134\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 135\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mcache_readonly\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/reshape/reshape.py\u001b[0m in \u001b[0;36m_make_selectors\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 185\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Index contains duplicate entries, cannot reshape\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 186\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroup_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcomp_index\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mValueError\u001b[0m: Index contains duplicate entries, cannot reshape" | |
] | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "hairy-retention", | |
"cell_type": "code", | |
"source": "(gradebook.pivot_table(\n index='student', \n columns='course', \n values='grade', aggfunc='last'))", | |
"execution_count": 27, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Claudia</th>\n <td>4</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course Algebra Geometry\nstudent \nAlice 4 5\nBob 3 5\nClaudia 4 3" | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "nonprofit-championship", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([['Alice', 3, 4],\n ['Bob', 4, 5]],\n columns=['student', 'Algebra', 'Geometry']\n )", | |
"execution_count": 31, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "outside-guitar", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 35, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alice</td>\n <td>3</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Bob</td>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student Algebra Geometry\n0 Alice 3 4\n1 Bob 4 5" | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "tender-ratio", | |
"cell_type": "code", | |
"source": "grades.melt(id_vars='student', var_name='course', value_name='grade')", | |
"execution_count": 34, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>course</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alice</td>\n <td>Algebra</td>\n <td>3</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Bob</td>\n <td>Algebra</td>\n <td>4</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Alice</td>\n <td>Geometry</td>\n <td>4</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Bob</td>\n <td>Geometry</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student course grade\n0 Alice Algebra 3\n1 Bob Algebra 4\n2 Alice Geometry 4\n3 Bob Geometry 5" | |
}, | |
"execution_count": 34, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "guilty-government", | |
"cell_type": "code", | |
"source": "(gradebook.pivot_table(\n index='student', \n columns='course', \n values='grade', aggfunc='last')\n)", | |
"execution_count": 38, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Claudia</th>\n <td>4</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course Algebra Geometry\nstudent \nAlice 4 5\nBob 3 5\nClaudia 4 3" | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "unnecessary-miller", | |
"cell_type": "code", | |
"source": "(gradebook.pivot_table(\n index='student', \n columns='course', \n values='grade', aggfunc='last')\n .reset_index()\n)", | |
"execution_count": 37, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>student</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alice</td>\n <td>4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Bob</td>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Claudia</td>\n <td>4</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course student Algebra Geometry\n0 Alice 4 5\n1 Bob 3 5\n2 Claudia 4 3" | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "corrected-advocacy", | |
"cell_type": "code", | |
"source": "(gradebook.pivot_table(\n index='student', \n columns='course', \n values='grade', aggfunc='last')\n .reset_index()\n .set_index('student')\n)", | |
"execution_count": 39, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>Claudia</th>\n <td>4</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course Algebra Geometry\nstudent \nAlice 4 5\nBob 3 5\nClaudia 4 3" | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "micro-soundtrack", | |
"cell_type": "code", | |
"source": "(gradebook.pivot_table(\n index='student', \n columns='course', \n values='grade', aggfunc='last')\n .reset_index(drop=True)\n)", | |
"execution_count": 40, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>course</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>4</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": "course Algebra Geometry\n0 4 5\n1 3 5\n2 4 3" | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "brave-interaction", | |
"cell_type": "code", | |
"source": "students = pd.DataFrame(\n [['Winnie', 4323],\n ['Piglet', 1242],\n ['Owl', 123]],\n columns=['student', 'idx']\n)", | |
"execution_count": 41, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "marine-affiliation", | |
"cell_type": "code", | |
"source": "students", | |
"execution_count": 42, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Owl</td>\n <td>123</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx\n0 Winnie 4323\n1 Piglet 1242\n2 Owl 123" | |
}, | |
"execution_count": 42, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "minute-limit", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([[1242, 5],\n [153, 3],\n [4323, 4]],\n columns=['student_id', 'grade'])", | |
"execution_count": 45, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "compound-atlantic", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 46, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1242</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>153</td>\n <td>3</td>\n </tr>\n <tr>\n <th>2</th>\n <td>4323</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student_id grade\n0 1242 5\n1 153 3\n2 4323 4" | |
}, | |
"execution_count": 46, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "super-split", | |
"cell_type": "code", | |
"source": "students.merge(grades, left_on='idx', right_on='student_id')", | |
"execution_count": 47, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>4323</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242</td>\n <td>1242</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx student_id grade\n0 Winnie 4323 4323 4\n1 Piglet 1242 1242 5" | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "unnecessary-indiana", | |
"cell_type": "code", | |
"source": "students.merge(grades, left_on='idx', right_on='student_id', how='left')", | |
"execution_count": 48, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>4323.0</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242</td>\n <td>1242.0</td>\n <td>5.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Owl</td>\n <td>123</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx student_id grade\n0 Winnie 4323 4323.0 4.0\n1 Piglet 1242 1242.0 5.0\n2 Owl 123 NaN NaN" | |
}, | |
"execution_count": 48, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "connected-ethernet", | |
"cell_type": "code", | |
"source": "students.merge(grades, left_on='idx', right_on='student_id', how='right')", | |
"execution_count": 49, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Piglet</td>\n <td>1242.0</td>\n <td>1242</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>NaN</td>\n <td>NaN</td>\n <td>153</td>\n <td>3</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Winnie</td>\n <td>4323.0</td>\n <td>4323</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx student_id grade\n0 Piglet 1242.0 1242 5\n1 NaN NaN 153 3\n2 Winnie 4323.0 4323 4" | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "alternate-moment", | |
"cell_type": "code", | |
"source": "students.merge(grades, left_on='idx', right_on='student_id', how='outer')", | |
"execution_count": 50, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323.0</td>\n <td>4323.0</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242.0</td>\n <td>1242.0</td>\n <td>5.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Owl</td>\n <td>123.0</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>3</th>\n <td>NaN</td>\n <td>NaN</td>\n <td>153.0</td>\n <td>3.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx student_id grade\n0 Winnie 4323.0 4323.0 4.0\n1 Piglet 1242.0 1242.0 5.0\n2 Owl 123.0 NaN NaN\n3 NaN NaN 153.0 3.0" | |
}, | |
"execution_count": 50, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "authentic-dryer", | |
"cell_type": "code", | |
"source": "students = pd.DataFrame(\n [['Winnie', 4323],\n ['Piglet', 1242],\n ['Winnie the Pooh', 4323],\n ['Owl', 123]],\n columns=['student', 'idx']\n)", | |
"execution_count": 54, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "partial-album", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([[1242, 5],\n [153, 3],\n [4323, 4],\n [4323, 3],\n ],\n columns=['student_id', 'grade'])", | |
"execution_count": 57, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "arabic-federation", | |
"cell_type": "code", | |
"source": "students.merge(grades, left_on='idx', right_on='student_id')", | |
"execution_count": 58, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>4323</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>4323</td>\n <td>3</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Winnie the Pooh</td>\n <td>4323</td>\n <td>4323</td>\n <td>4</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Winnie the Pooh</td>\n <td>4323</td>\n <td>4323</td>\n <td>3</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Piglet</td>\n <td>1242</td>\n <td>1242</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx student_id grade\n0 Winnie 4323 4323 4\n1 Winnie 4323 4323 3\n2 Winnie the Pooh 4323 4323 4\n3 Winnie the Pooh 4323 4323 3\n4 Piglet 1242 1242 5" | |
}, | |
"execution_count": 58, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "driven-independence", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 63, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student_id</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1242</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>153</td>\n <td>3</td>\n </tr>\n <tr>\n <th>2</th>\n <td>4323</td>\n <td>4</td>\n </tr>\n <tr>\n <th>3</th>\n <td>4323</td>\n <td>3</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student_id grade\n0 1242 5\n1 153 3\n2 4323 4\n3 4323 3" | |
}, | |
"execution_count": 63, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "devoted-concentrate", | |
"cell_type": "code", | |
"source": "students.join(grades.set_index('student_id'), on='idx')", | |
"execution_count": 71, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n <td>3.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242</td>\n <td>5.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Winnie the Pooh</td>\n <td>4323</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Winnie the Pooh</td>\n <td>4323</td>\n <td>3.0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Owl</td>\n <td>123</td>\n <td>NaN</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx grade\n0 Winnie 4323 4.0\n0 Winnie 4323 3.0\n1 Piglet 1242 5.0\n2 Winnie the Pooh 4323 4.0\n2 Winnie the Pooh 4323 3.0\n3 Owl 123 NaN" | |
}, | |
"execution_count": 71, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "backed-blank", | |
"cell_type": "code", | |
"source": "students", | |
"execution_count": 72, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>idx</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>4323</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Piglet</td>\n <td>1242</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Winnie the Pooh</td>\n <td>4323</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Owl</td>\n <td>123</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student idx\n0 Winnie 4323\n1 Piglet 1242\n2 Winnie the Pooh 4323\n3 Owl 123" | |
}, | |
"execution_count": 72, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "square-humanity", | |
"cell_type": "code", | |
"source": "students = pd.DataFrame([['Winnie', 'Pooh', 3],\n ['Winnie', 'Not Pooh', 4],\n ['Christofer', 'Robin', 7]\n ],\n columns=['first_name', 'second_name', 'age']\n )", | |
"execution_count": 82, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "metropolitan-toronto", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([['Winnie', 'Pooh', 5],\n ['Christofer', 'Robin', 4]\n ],\n columns=['first_name', 'second_name', 'grade']\n )", | |
"execution_count": 83, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "compact-semiconductor", | |
"cell_type": "code", | |
"source": "students.merge(grades, on=['first_name', 'second_name'])", | |
"execution_count": 84, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>first_name</th>\n <th>second_name</th>\n <th>age</th>\n <th>grade</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>Pooh</td>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Christofer</td>\n <td>Robin</td>\n <td>7</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " first_name second_name age grade\n0 Winnie Pooh 3 5\n1 Christofer Robin 7 4" | |
}, | |
"execution_count": 84, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "published-hierarchy", | |
"cell_type": "code", | |
"source": "students = pd.DataFrame([['Winnie', 'Pooh', 3],\n ['Winnie', 'Not Pooh', 4],\n ['Christofer', 'Robin', 7]\n ],\n columns=['first_name', 'second_name', 'grade']\n )", | |
"execution_count": 85, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "threatened-newspaper", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([['Winnie', 'Pooh', 5],\n ['Christofer', 'Robin', 4]\n ],\n columns=['first_name', 'second_name', 'grade']\n )", | |
"execution_count": 86, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "flush-criterion", | |
"cell_type": "code", | |
"source": "students.merge(grades, on=['first_name', 'second_name'], \n suffixes=('_algebra', '_calculus'))", | |
"execution_count": 88, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>first_name</th>\n <th>second_name</th>\n <th>grade_algebra</th>\n <th>grade_calculus</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Winnie</td>\n <td>Pooh</td>\n <td>3</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Christofer</td>\n <td>Robin</td>\n <td>7</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " first_name second_name grade_algebra grade_calculus\n0 Winnie Pooh 3 5\n1 Christofer Robin 7 4" | |
}, | |
"execution_count": 88, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "proprietary-polish", | |
"cell_type": "code", | |
"source": "grades = pd.DataFrame([['Alice', 3, 4],\n ['Bob', 4, 5]],\n columns=['student', 'Algebra', 'Geometry']\n )", | |
"execution_count": 89, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "technological-chinese", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 92, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>student</th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alice</td>\n <td>3</td>\n <td>4</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Bob</td>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " student Algebra Geometry\n0 Alice 3 4\n1 Bob 4 5" | |
}, | |
"execution_count": 92, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "promising-sherman", | |
"cell_type": "code", | |
"source": "grades.set_index('student', inplace=True)", | |
"execution_count": 94, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "charitable-thriller", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 95, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>3</td>\n <td>4</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice 3 4\nBob 4 5" | |
}, | |
"execution_count": 95, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "literary-validation", | |
"cell_type": "code", | |
"source": "grades[grades['Geometry'] >= 5]", | |
"execution_count": 98, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Bob</th>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nBob 4 5" | |
}, | |
"execution_count": 98, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "hydraulic-treatment", | |
"cell_type": "code", | |
"source": "grades[grades >= 5].fillna(-1)", | |
"execution_count": 101, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>-1.0</td>\n <td>-1.0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>-1.0</td>\n <td>5.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice -1.0 -1.0\nBob -1.0 5.0" | |
}, | |
"execution_count": 101, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "dedicated-cardiff", | |
"cell_type": "code", | |
"source": "grades.mean()", | |
"execution_count": 103, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": "Algebra 3.5\nGeometry 4.5\ndtype: float64" | |
}, | |
"execution_count": 103, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "martial-there", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 104, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>3</td>\n <td>4</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice 3 4\nBob 4 5" | |
}, | |
"execution_count": 104, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "norman-emergency", | |
"cell_type": "code", | |
"source": "grades[grades >= 5].fillna(grades.mean())", | |
"execution_count": 102, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>3.5</td>\n <td>4.5</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>3.5</td>\n <td>5.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice 3.5 4.5\nBob 3.5 5.0" | |
}, | |
"execution_count": 102, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "dynamic-witness", | |
"cell_type": "code", | |
"source": "grades[grades >= 5].fillna(-grades)", | |
"execution_count": 105, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>-3.0</td>\n <td>-4.0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>-4.0</td>\n <td>5.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice -3.0 -4.0\nBob -4.0 5.0" | |
}, | |
"execution_count": 105, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "bibliographic-cherry", | |
"cell_type": "code", | |
"source": "grades[grades >= 5].fillna(grades.mean().mean())", | |
"execution_count": 107, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4.0</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>4.0</td>\n <td>5.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice 4.0 4.0\nBob 4.0 5.0" | |
}, | |
"execution_count": 107, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "signal-boards", | |
"cell_type": "code", | |
"source": "grades.where(grades >= 5, -1)", | |
"execution_count": 109, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>-1</td>\n <td>-1</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>-1</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice -1 -1\nBob -1 5" | |
}, | |
"execution_count": 109, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "engaged-laundry", | |
"cell_type": "code", | |
"source": "grades.where(grades >= 5, -grades)", | |
"execution_count": 110, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>-3</td>\n <td>-4</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>-4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice -3 -4\nBob -4 5" | |
}, | |
"execution_count": 110, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "novel-television", | |
"cell_type": "code", | |
"source": "(pd.DataFrame()\n .reindex_like(grades)\n .fillna(1)\n .where(grades >= 5, -grades))", | |
"execution_count": 114, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>-3.0</td>\n <td>-4.0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>-4.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice -3.0 -4.0\nBob -4.0 1.0" | |
}, | |
"execution_count": 114, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "consistent-consent", | |
"cell_type": "code", | |
"source": "grades", | |
"execution_count": 115, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Algebra</th>\n <th>Geometry</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>3</td>\n <td>4</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Algebra Geometry\nstudent \nAlice 3 4\nBob 4 5" | |
}, | |
"execution_count": 115, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "piano-incident", | |
"cell_type": "code", | |
"source": "grades.reindex(['Geometry', 'Calculus', 'Algebra'], axis=1, \n fill_value=0)", | |
"execution_count": 119, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Geometry</th>\n <th>Calculus</th>\n <th>Algebra</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>0</td>\n <td>3</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>5</td>\n <td>0</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Geometry Calculus Algebra\nstudent \nAlice 4 0 3\nBob 5 0 4" | |
}, | |
"execution_count": 119, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "classified-accident", | |
"cell_type": "code", | |
"source": "grades.reindex(['Geometry', 'Calculus'], axis=1, \n fill_value=0)", | |
"execution_count": 120, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Geometry</th>\n <th>Calculus</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>5</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Geometry Calculus\nstudent \nAlice 4 0\nBob 5 0" | |
}, | |
"execution_count": 120, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "brave-stamp", | |
"cell_type": "code", | |
"source": "grades[['Geometry', 'Algebra']]", | |
"execution_count": 121, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Geometry</th>\n <th>Algebra</th>\n </tr>\n <tr>\n <th>student</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Alice</th>\n <td>4</td>\n <td>3</td>\n </tr>\n <tr>\n <th>Bob</th>\n <td>5</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " Geometry Algebra\nstudent \nAlice 4 3\nBob 5 4" | |
}, | |
"execution_count": 121, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "champion-marketplace", | |
"cell_type": "code", | |
"source": "grades[['Geometry', 'Algebra', 'Calculus']]", | |
"execution_count": 122, | |
"outputs": [ | |
{ | |
"ename": "KeyError", | |
"evalue": "\"['Calculus'] not in index\"", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m/var/folders/h2/9nyrt4p55kq6pdvqg02_zmj40000gn/T/ipykernel_34981/2605385249.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mgrades\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Geometry'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Algebra'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Calculus'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3462\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3463\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3464\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3466\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1314\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_read_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1316\u001b[0m if needs_i8_conversion(ax.dtype) or isinstance(\n", | |
"\u001b[0;32m~/miniconda3/envs/py3.10/lib/python3.10/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis)\u001b[0m\n\u001b[1;32m 1375\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1376\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmissing_mask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnonzero\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1377\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"{not_found} not in index\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1378\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1379\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mKeyError\u001b[0m: \"['Calculus'] not in index\"" | |
] | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": false | |
}, | |
"id": "recognized-cigarette", | |
"cell_type": "code", | |
"source": "", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "py3.10", | |
"display_name": "Python 3.10", | |
"language": "python" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.10.0", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
}, | |
"gist": { | |
"id": "", | |
"data": { | |
"description": "Untitled.ipynb", | |
"public": false | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment