{ "metadata": { "name": "", "signature": "sha256:fa9d1d7d71465ded90ab496c3c671a0f381b1209c89ec421b309f6e33e964df1" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Hierarchical Data In Pandas\n", "\n", "- **Author:** [Chris Albon](http://www.chrisalbon.com/), [@ChrisAlbon](https://twitter.com/chrisalbon)\n", "- **Date:** -\n", "- **Repo:** [Python 3 code snippets for data science](https://github.com/chrisalbon/code_py)\n", "- **Note:**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### import modules" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create dataframe" ] }, { "cell_type": "code", "collapsed": false, "input": [ "raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks', 'Dragoons', 'Dragoons', 'Dragoons', 'Dragoons', 'Scouts', 'Scouts', 'Scouts', 'Scouts'], \n", " 'company': ['1st', '1st', '2nd', '2nd', '1st', '1st', '2nd', '2nd','1st', '1st', '2nd', '2nd'], \n", " 'name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze', 'Jacon', 'Ryaner', 'Sone', 'Sloan', 'Piger', 'Riani', 'Ali'], \n", " 'preTestScore': [4, 24, 31, 2, 3, 4, 24, 31, 2, 3, 2, 3],\n", " 'postTestScore': [25, 94, 57, 62, 70, 25, 94, 57, 62, 70, 62, 70]}\n", "df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'name', 'preTestScore', 'postTestScore'])\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", " | regiment | \n", "company | \n", "name | \n", "preTestScore | \n", "postTestScore | \n", "
---|---|---|---|---|---|
0 | \n", "Nighthawks | \n", "1st | \n", "Miller | \n", "4 | \n", "25 | \n", "
1 | \n", "Nighthawks | \n", "1st | \n", "Jacobson | \n", "24 | \n", "94 | \n", "
2 | \n", "Nighthawks | \n", "2nd | \n", "Ali | \n", "31 | \n", "57 | \n", "
3 | \n", "Nighthawks | \n", "2nd | \n", "Milner | \n", "2 | \n", "62 | \n", "
4 | \n", "Dragoons | \n", "1st | \n", "Cooze | \n", "3 | \n", "70 | \n", "
5 | \n", "Dragoons | \n", "1st | \n", "Jacon | \n", "4 | \n", "25 | \n", "
6 | \n", "Dragoons | \n", "2nd | \n", "Ryaner | \n", "24 | \n", "94 | \n", "
7 | \n", "Dragoons | \n", "2nd | \n", "Sone | \n", "31 | \n", "57 | \n", "
8 | \n", "Scouts | \n", "1st | \n", "Sloan | \n", "2 | \n", "62 | \n", "
9 | \n", "Scouts | \n", "1st | \n", "Piger | \n", "3 | \n", "70 | \n", "
10 | \n", "Scouts | \n", "2nd | \n", "Riani | \n", "2 | \n", "62 | \n", "
11 | \n", "Scouts | \n", "2nd | \n", "Ali | \n", "3 | \n", "70 | \n", "
12 rows \u00d7 5 columns
\n", "\n", " | regiment | \n", "company | \n", "name | \n", "preTestScore | \n", "postTestScore | \n", "
---|---|---|---|---|---|
0 | \n", "Nighthawks | \n", "1st | \n", "Miller | \n", "4 | \n", "25 | \n", "
1 | \n", "Nighthawks | \n", "1st | \n", "Jacobson | \n", "24 | \n", "94 | \n", "
2 | \n", "Nighthawks | \n", "2nd | \n", "Ali | \n", "31 | \n", "57 | \n", "
3 | \n", "Nighthawks | \n", "2nd | \n", "Milner | \n", "2 | \n", "62 | \n", "
4 | \n", "Dragoons | \n", "1st | \n", "Cooze | \n", "3 | \n", "70 | \n", "
5 | \n", "Dragoons | \n", "1st | \n", "Jacon | \n", "4 | \n", "25 | \n", "
6 | \n", "Dragoons | \n", "2nd | \n", "Ryaner | \n", "24 | \n", "94 | \n", "
7 | \n", "Dragoons | \n", "2nd | \n", "Sone | \n", "31 | \n", "57 | \n", "
8 | \n", "Scouts | \n", "1st | \n", "Sloan | \n", "2 | \n", "62 | \n", "
9 | \n", "Scouts | \n", "1st | \n", "Piger | \n", "3 | \n", "70 | \n", "
10 | \n", "Scouts | \n", "2nd | \n", "Riani | \n", "2 | \n", "62 | \n", "
11 | \n", "Scouts | \n", "2nd | \n", "Ali | \n", "3 | \n", "70 | \n", "
12 rows \u00d7 5 columns
\n", "\n", " | \n", " | name | \n", "preTestScore | \n", "postTestScore | \n", "
---|---|---|---|---|
regiment | \n", "company | \n", "\n", " | \n", " | \n", " |
Nighthawks | \n", "1st | \n", "Miller | \n", "4 | \n", "25 | \n", "
1st | \n", "Jacobson | \n", "24 | \n", "94 | \n", "|
2nd | \n", "Ali | \n", "31 | \n", "57 | \n", "|
2nd | \n", "Milner | \n", "2 | \n", "62 | \n", "|
Dragoons | \n", "1st | \n", "Cooze | \n", "3 | \n", "70 | \n", "
1st | \n", "Jacon | \n", "4 | \n", "25 | \n", "|
2nd | \n", "Ryaner | \n", "24 | \n", "94 | \n", "|
2nd | \n", "Sone | \n", "31 | \n", "57 | \n", "|
Scouts | \n", "1st | \n", "Sloan | \n", "2 | \n", "62 | \n", "
1st | \n", "Piger | \n", "3 | \n", "70 | \n", "|
2nd | \n", "Riani | \n", "2 | \n", "62 | \n", "|
2nd | \n", "Ali | \n", "3 | \n", "70 | \n", "
12 rows \u00d7 3 columns
\n", "\n", " | \n", " | name | \n", "preTestScore | \n", "postTestScore | \n", "
---|---|---|---|---|
company | \n", "regiment | \n", "\n", " | \n", " | \n", " |
1st | \n", "Nighthawks | \n", "Miller | \n", "4 | \n", "25 | \n", "
Nighthawks | \n", "Jacobson | \n", "24 | \n", "94 | \n", "|
2nd | \n", "Nighthawks | \n", "Ali | \n", "31 | \n", "57 | \n", "
Nighthawks | \n", "Milner | \n", "2 | \n", "62 | \n", "|
1st | \n", "Dragoons | \n", "Cooze | \n", "3 | \n", "70 | \n", "
Dragoons | \n", "Jacon | \n", "4 | \n", "25 | \n", "|
2nd | \n", "Dragoons | \n", "Ryaner | \n", "24 | \n", "94 | \n", "
Dragoons | \n", "Sone | \n", "31 | \n", "57 | \n", "|
1st | \n", "Scouts | \n", "Sloan | \n", "2 | \n", "62 | \n", "
Scouts | \n", "Piger | \n", "3 | \n", "70 | \n", "|
2nd | \n", "Scouts | \n", "Riani | \n", "2 | \n", "62 | \n", "
Scouts | \n", "Ali | \n", "3 | \n", "70 | \n", "
12 rows \u00d7 3 columns
\n", "\n", " | preTestScore | \n", "postTestScore | \n", "
---|---|---|
regiment | \n", "\n", " | \n", " |
Dragoons | \n", "62 | \n", "246 | \n", "
Nighthawks | \n", "61 | \n", "238 | \n", "
Scouts | \n", "10 | \n", "264 | \n", "
3 rows \u00d7 2 columns
\n", "