{ "metadata": { "name": "", "signature": "sha256:ca0f00132de7ae9c8ef76dfc7f5c8051f310d01f010677297806ee2bd2cf79e0" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# itable examples\n", "\n", "These tables are created using the itable package [https://github.com/mgymrek/itable](https://github.com/mgymrek/itable).\n", "\n", "These examples are originally described in [this post](http://melissagymrek.com/python/2014/01/12/ipython-tables.html) before I had created the separate ```itable``` package. Usage is identical except for the change in the package name." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd\n", "import itable" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# Create an example data frame\n", "df = pd.DataFrame({\"x\":[1,2,3], \"y\":[6,4,3], \"z\":[\"testing\",\"pretty\",\"tables\"], \"f\":[0.023432, 0.234321,0.5555]})" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "# Display a simple table\n", "itable.PrettyTable(df)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<table style=\"\"><tr style=\"\"><td style=\"\">f</td><td style=\"\">x</td><td style=\"\">y</td><td style=\"\">z</td></tr><tr style=\"\"><td style=\"\">0.023432</td><td style=\"\">1</td><td style=\"\">6</td><td style=\"\">testing</td></tr><tr style=\"\"><td style=\"\">0.234321</td><td style=\"\">2</td><td style=\"\">4</td><td style=\"\">pretty</td></tr><tr style=\"\"><td style=\"\">0.5555</td><td style=\"\">3</td><td style=\"\">3</td><td style=\"\">tables</td></tr></table>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "<itable.itable.PrettyTable at 0x3211dd0>" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "# Give it a theme and center the table\n", "itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">x</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">y</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.023432</td><td style=\"color: black;border: 1px solid black;\">1</td><td style=\"color: black;border: 1px solid black;\">6</td><td style=\"color: black;border: 1px solid black;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.234321</td><td style=\"color: black;border: 1px solid black;\">2</td><td style=\"color: black;border: 1px solid black;\">4</td><td style=\"color: black;border: 1px solid black;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.5555</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "<itable.itable.PrettyTable at 0x7f5cb0064590>" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "# Set cell style using a CellStyle object\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True)\n", "cs = itable.CellStyle()\n", "cs.set(\"background-color\", \"red\")\n", "cs.set(\"color\", \"white\")\n", "pt.set_cell_style(style=cs)\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">x</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">y</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: white;background-color: red;\">0.023432</td><td style=\"color: white;background-color: red;\">1</td><td style=\"color: white;background-color: red;\">6</td><td style=\"color: white;background-color: red;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: white;background-color: red;\">0.234321</td><td style=\"color: white;background-color: red;\">2</td><td style=\"color: white;background-color: red;\">4</td><td style=\"color: white;background-color: red;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: white;background-color: red;\">0.5555</td><td style=\"color: white;background-color: red;\">3</td><td style=\"color: white;background-color: red;\">3</td><td style=\"color: white;background-color: red;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "<itable.itable.PrettyTable at 0x329d9d0>" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# Only for a subset of rows/columns\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True)\n", "cs = itable.CellStyle()\n", "cs.set(\"background-color\", \"red\")\n", "cs.set(\"color\", \"white\")\n", "pt.set_cell_style(style=cs, rows=[1,2], cols=[2])\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">x</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">y</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.023432</td><td style=\"color: black;border: 1px solid black;\">1</td><td style=\"color: black;border: 1px solid black;\">6</td><td style=\"color: black;border: 1px solid black;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.234321</td><td style=\"color: black;border: 1px solid black;\">2</td><td style=\"color: white;background-color: red;\">4</td><td style=\"color: black;border: 1px solid black;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.5555</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: white;background-color: red;\">3</td><td style=\"color: black;border: 1px solid black;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "<itable.itable.PrettyTable at 0x7f5cb0070650>" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# Set styles using keywords (these are all CSS properties, just replace \"-\" with \"_\")\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True)\n", "pt.set_cell_style(font_weight=\"bold\", color=\"purple\", background_color=\"yellow\", rows=[1], cols=[2,3])\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">x</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">y</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.023432</td><td style=\"color: black;border: 1px solid black;\">1</td><td style=\"color: black;border: 1px solid black;\">6</td><td style=\"color: black;border: 1px solid black;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.234321</td><td style=\"color: black;border: 1px solid black;\">2</td><td style=\"color: purple;font-weight: bold;background-color: yellow;\">4</td><td style=\"color: purple;font-weight: bold;background-color: yellow;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;border: 1px solid black;\">0.5555</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "<itable.itable.PrettyTable at 0x7f5cb0064fd0>" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "# Set the header style. corner sets the corner cell\n", "# \"indices\" applies the style only to certain indices\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True, header_row=True)\n", "pt.set_row_header_style(color=\"blue\")\n", "pt.set_col_header_style(background_color=\"white\", font_weight=\"bold\", indices=[2])\n", "pt.set_corner_style(background_color=\"red\")\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"background-color: red;\"></td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">x</td><td style=\"font-weight: bold;background-color: white;\">y</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: blue;\">0</td><td style=\"color: black;border: 1px solid black;\">0.023432</td><td style=\"color: black;border: 1px solid black;\">1</td><td style=\"color: black;border: 1px solid black;\">6</td><td style=\"color: black;border: 1px solid black;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: blue;\">1</td><td style=\"color: black;border: 1px solid black;\">0.234321</td><td style=\"color: black;border: 1px solid black;\">2</td><td style=\"color: black;border: 1px solid black;\">4</td><td style=\"color: black;border: 1px solid black;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: blue;\">2</td><td style=\"color: black;border: 1px solid black;\">0.5555</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "<itable.itable.PrettyTable at 0x7f5cb0068dd0>" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "# Update current styles\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True, header_row=True)\n", "pt.set_cell_style(font_weight=\"bold\", color=\"purple\", background_color=\"yellow\", rows=[1], cols=[2,3])\n", "pt.update_cell_style(background_color=\"pink\", rows=[1], cols=[3])\n", "pt.update_row_header_style(background_color=\"blue\", indices=[0])\n", "pt.update_col_header_style(color=\"red\")\n", "pt.update_corner_style(background_color=\"purple\")\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"background-color: purple;\"></td><td style=\"color: red;font-weight: bold;background-color: lightgray;\">f</td><td style=\"color: red;font-weight: bold;background-color: lightgray;\">x</td><td style=\"color: red;font-weight: bold;background-color: lightgray;\">y</td><td style=\"color: red;font-weight: bold;background-color: lightgray;\">z</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font_weight: bold;background-color: blue;\">0</td><td style=\"color: black;border: 1px solid black;\">0.023432</td><td style=\"color: black;border: 1px solid black;\">1</td><td style=\"color: black;border: 1px solid black;\">6</td><td style=\"color: black;border: 1px solid black;\">testing</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font_weight: bold;background-color: lightgray;\">1</td><td style=\"color: black;border: 1px solid black;\">0.234321</td><td style=\"color: black;border: 1px solid black;\">2</td><td style=\"color: purple;font-weight: bold;background-color: yellow;\">4</td><td style=\"color: purple;font-weight: bold;background-color: pink;\">pretty</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font_weight: bold;background-color: lightgray;\">2</td><td style=\"color: black;border: 1px solid black;\">0.5555</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">3</td><td style=\"color: black;border: 1px solid black;\">tables</td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "<itable.itable.PrettyTable at 0x7f5cb00701d0>" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "# Set cell formats\n", "df = pd.DataFrame({\"FloatColumn\": [0.0324234, 0.23432111, 0.555555], \"SciNotColumn\":[1e10, 4.232e-6, 53e-8]})\n", "pt = itable.PrettyTable(df, tstyle=itable.TableStyle(theme=\"theme1\"), center=True)\n", "pt.set_cell_style(cols=[0], format_function=lambda x: \"%.3f\"%x)\n", "def SciNot(x):\n", " xx = \"%.2E\"%x\n", " base, exp = xx.split(\"E\")\n", " return \"%s × 10<sup>%s</sup>\"%(base, int(exp))\n", "pt.set_cell_style(cols=[1], format_function=SciNot)\n", "pt" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "<center><table style=\"color: black;border: 1px solid black;\"><tr style=\"color: black;border: 1px solid black;\"><td style=\"color: black;font-weight: bold;background-color: lightgray;\">FloatColumn</td><td style=\"color: black;font-weight: bold;background-color: lightgray;\">SciNotColumn</td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"\">0.032</td><td style=\"\">1.00 × 10<sup>10</sup></td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"\">0.234</td><td style=\"\">4.23 × 10<sup>-6</sup></td></tr><tr style=\"color: black;border: 1px solid black;\"><td style=\"\">0.556</td><td style=\"\">5.30 × 10<sup>-7</sup></td></tr></table></center>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "<itable.itable.PrettyTable at 0x7f5cb0060b90>" ] } ], "prompt_number": 25 } ], "metadata": {} } ] }