Skip to content

Instantly share code, notes, and snippets.

@suntong
Last active December 11, 2015 21:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suntong/d4fb08242ab0247b5692 to your computer and use it in GitHub Desktop.
Save suntong/d4fb08242ab0247b5692 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import plotly.plotly as py\n",
"import plotly.graph_objs as go\n",
"# (*) Useful Python/Plotly tools\n",
"import plotly.tools as tls\n",
"\n",
"import cufflinks as cf\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" A B C D E\n",
"0 foo foo foo one one one I1-one 0.432164 -0.543835\n",
"1 bar bar bar two two two I2-two -1.405275 -0.258083\n",
"2 foo foo foo three three three I3-three 0.372689 -0.342716\n",
"3 bar bar bar one one one I4-four 2.035922 -0.667917\n",
"4 foo foo foo two two two I1-one -0.757218 0.537525\n",
"5 bar bar bar three three three I2-two -0.656761 -0.157566\n",
"6 foo foo foo one one one I3-three -0.892129 0.969210\n",
"7 bar bar bar two two two I4-four 0.248857 0.480221\n",
"8 foo foo foo three three three I1-one 1.890949 -0.757290\n",
"9 bar bar bar one one one I2-two 0.057599 0.116085\n",
"10 foo foo foo two two two I3-three 0.251044 -0.234277\n",
"11 bar bar bar three three three I4-four -0.474219 -0.927109\n",
"C I1-one I2-two I3-three I4-four\n",
"A B \n",
"bar bar bar one one one NaN 0.057599 NaN 2.035922\n",
" three three three NaN -0.656761 NaN -0.474219\n",
" two two two NaN -1.405275 NaN 0.248857\n",
"foo foo foo one one one 0.432164 NaN -0.892129 NaN\n",
" three three three 1.890949 NaN 0.372689 NaN\n",
" two two two -0.757218 NaN 0.251044 NaN\n"
]
}
],
"source": [
"df = pd.DataFrame({'A' : ['foo foo foo', 'bar bar bar']*6,\n",
" 'B' : ['one one one', 'two two two', 'three three three']*4,\n",
" 'C' : ['I1-one', 'I2-two', 'I3-three', 'I4-four']*3,\n",
" 'D' : np.random.randn(12),\n",
" 'E' : np.random.randn(12)})\n",
"print(df)\n",
"e = pd.pivot_table(df, index=['A','B'], columns='C',values='E')\n",
"p = pd.pivot_table(df, index=['A','B'], columns='C',values='D')\n",
"print(p)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nKdPMzMw6JBcUZmZmVjQXFGZmZlY0FxRmZmZWNBcUZmZmVjQXFGZmZlY0FxRmZmZWNBcUZmZmVjQX\nFGbWZUyaNKnUKZh1Wy4ozKzLmDx5cqlTsFZWsVNF/Smu2+JWsVNFk3MZMWIEjzzyCH/84x85/PDD\nGTBgAEOGDOHf//3fWb16dcHtbrjhBg4//PDW6I4OzdfyMDOzDqvmtRqY1IbxJzX/MuCrVq3i29/+\ndv21OU499VQuvPBCrrnmmrzrR8Qm1+voijxCYWZm1gynnHIK48aNo0+fPvTv35+zzjqLWbNm5V13\n0aJFnH322Tz++OP069ePgQMH8sorrzBgwID6dc466yzKy8vr75922mn1Fw97/fXXOe644xg0aBC7\n7bYb119/fds+uSK4oDAzMyvC9OnT2WuvvfI+tvvuu3PttdcyevRoamtrefvttxk+fDj9+/dnzpw5\nAMyYMYN+/fqxePHi+nhVVVUAnHzyyQwbNowVK1Zwxx13cMkll1BdXd0eT6vZ2rSgkNRHUrUyYyXd\n24qxp0j6TCvGq22tWA3iVko6Nef+6ZKubot9NdjvWEmjc+63an81st/TJVXk3H9Z0sA22E9vSdMl\nuShuprY+Jl3KW1n/slJ3r3UzDz30EDfddBOXXXZZs7Y74ogjmD59OjU12SGXE088kenTp/PKK69Q\nW1vLvvvuy7Jly3j88ce54oor6N27NyNHjuQrX/kKN954Y1s8laK19RyKM4E7IyLS8aMWX5dWUo+I\nWN8aSUnqGRENL1xfTG754tUZAXweuLU5+2qF51sFvAs83tQNNvM8mupLwEJgRbrflOfa7P1GxFpJ\nfwFOAW5pbpLdWVsfky6l1ZMKT4wza21PPPEEEyZM4M4772TnnXcGYObMmYwfPx5JVFZWsmDBgrzb\njh07lqlTp7LjjjsyduxYqqqquPHGG9lyyy3rJ3C+/vrrDBw4kL59+9ZvV1lZydNPP932T64F2vrb\n3QTgnpz7/SXdJ2mRpPrZK5KukTRb0gJJl+a0vyzpcklPASfmiX+0pCdTvH9L21RKelTSU+l2SGof\nm9rvAf6WJ5YkXSVpoaSHJA1KjV9Juc2RdIekPql9iqRfSHoCuKKRPvghMEbSM5LOS207SvqTpMWS\n6reVVCvpvyXNAQ6RNErZCM+Taf3ytN5H0v0n07f03Ro8kUrgP4Dz034PSw+NlTRL0gtKoxX5+kXS\n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\na/369fTo0YMXX3wx77qLFi3i7LPP5vHHH6dfv34MHDiw/rG3336bY445hm222YbRo0fz8ssv1z/W\no0cPrrnmGnbbbTd22223+ljjxo1j0KBB7LHHHtxxx4brU37wwQdMnDiRyspKBg8ezDnnnMOaNbmX\nb2p7LijMzMyaadmyZQwYMIC+ffty1VVXcdFF+c9tuPvuu3PttdcyevRoamtrefvtt+sfu/3225k8\neTIrV65k55135pvf3OiajNxzzz3Mnj2bv//977z33nuMGzeOL3zhC7z11lvcdtttfO1rX2PRokUA\nXHTRRbzwwgvMnz+fF154gddee63d52e4oDAzM2umoUOH8s477/CPf/yD733ve/WjCM1xwgkncMAB\nB9CjRw8mTJjA3LlzN3r8kksuYdttt2XLLbfkvvvuY8SIEZx22mlIYuTIkXzmM5+pH6W47rrr+PGP\nf0z//v0pKyvj4osv5tZbb22V59pU/pWHmZlZC2277bacdtppjBw5kuXLl/PYY48xfvx4JFFZWcmC\nBQsKbluRMyG0b9++vPvuuxs9vtNOO9UvL1myhCeeeKL+kElEsG7dOk477TTefPNN3nvvPQ444ID6\n9devX9/uZx11QWFmZlaEtWvX8uabb7Jq1SrGjBlDbW3tRo+3dEJm7nZDhw6lqqqKBx54YJP1IoK+\nffvyt7/9jcGDB7doX63BhzzMzMya4e677+a5554jInjzzTe54IILGDVqFNtuu23e9cvLy3n11VdZ\nu3Zti/d5zDHH8Nxzz3HzzTfz4YcfsnbtWp566ikWL16MJM466yzOP/983nzzTQBee+01HnzwwRbv\nryVcUJiZWYdVWV6OoM1uleXlTc6lbsTgtdde45Of/CTbbLMNI0eOpFevXtx1110FtzvqqKPYa6+9\nqKioYIcddmjWvupsvfXWPPjgg9x2220MGTKEIUOGcPHFF9f/kuPyyy9nl1124ZBDDmHbbbdl3Lhx\nPPfcc01+bq3BVxu1LslXGzXrfHy10fbjq42amZlZh+SCwszMzIrmgsLMzMyK5oLCzMzMiuaCwszM\nzIrmgsLMzMyK5oLCzMzMiuaCwsy6jEmTJpU6BbNuyye2si7JJ7bqnnxipM6tK79+3/rWt/jlL39J\n7969Wb58eanT8YmtzMyse6kYNgxJbXarGDasybmMGDGCRx55ZKO2M888kx49evDSSy8V3G7ZsmVc\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x107fec400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = p.plot(kind='barh')\n",
"f = ax.invert_yaxis()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x107feccf8>"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n03JdB+fyWyVN7x/eeqhRz6JrXUpLS3NdBcDfbeGcc65eZWT5sRjbDF26lLTMZrVhs2fPbp53sAwd\n2qR6tGjLg3POOVefjRtXkIdXtVulprbCtFiHSedaUp52rXFNVFw8lKqqhp6l5nLJ/9+2jNAxsr7y\nBjMLTx5cXvLkwbm2p74Dmmt+TU0evM+Dc8455zLiyYNzzjnnMuLJg3POOdcIVVVVnHHGGey2224c\neOCBHHvssbzzzju5rlaL8LstnHPOuUY48cQTOe+883jooYcAWLp0KVVVVey66645rln2efLgnHPO\nZaiiooLOnTszYcKEurKRI0fmsEYtyy9bOOeccxlatmwZ+++/f66rkTOePDjnnHMuI548OOeccxka\nMWIEL7/8cq6rkTOePDjnnHMZOuKII/j666+566676sqWLl3KvHnzclirluPJg3POOdcI06dPZ8aM\nGey6666MHDmSa665huLi4lxXq0X446ldXvLHUzvX9vjjqVuOP57aOeeccy3KkwfnnHPOZcSTB+ec\nc85lxJMH55xzzmXEkwfnnHPOZcSTB+dcu1FeXp7rKjiXF/xWTZeX/FZNl4zfCti6+ffTcvxWTeec\nc861KE8enHPOtVrFxUORlLWhuHho2nUZNmwYs2bNYu3atRx//PEMHDiQgoICVq5cmb0d0Ep58uDa\nrcrKylxXwbUC/jto3aqqVgCWtSGKn5mCggKOOeYYHn30UaQGW/jzkicPrt3ygwYMLS7O6lldaxt6\nFRZutw/8d+AytfPOO/Pv//7vHHDAAWn10TAzfvGLXzB06FCKi4s599xzWb9+PQArVqygoKCA++67\nj5KSEnbeeWf+8z//c5tlb7jhBnbddVf69evH6aefzueff561bUtX3iQPkrpKqlRIAyX9WtJSSTc2\nMW5nSTMkvSrplCbG2l3SQkmvSBrWlFjtnaROkmZLypvfcC6sqKrK4jld6xv+WVPTTHvOufRNmTKF\n++67j9mzZ/Pee+9RXV3NxRdfvM088+bN4+233+a5557j+uuv58033wTgt7/9LY8//jhz5sxhzZo1\n9O7dm4suuigXm7EtM8uLAbgIuCQ2/TnhbpImxj0YeLaZ6ngVcE2u91W+DMB1wPfr+cwaUlpamutj\nmQ+tYCgtLW3wt+JaBmz//zb6niyLQ8N/K2oNHTrUZs6cWTf9zTffmCRbsWJFyuWOPPJI+/3vf183\n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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1080f4ac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.close('all') # close all open figures\n",
"fig, ax = plt.subplots()\n",
"\n",
"# Plot With Error Bars\n",
"p.plot(xerr=e, ax=ax, kind='barh')\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Figure(\n",
" data=Data([\n",
" Scatter(\n",
" x=[nan, nan, nan, 0.97599951193918555, 2.6482391432369594, -1.2..],\n",
" y=[-0.1875, 0.8125, 1.8125, 2.8125, 3.8125, 4.8125],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[nan, nan, nan, -0.11167075183956393, 1.1336598283373407, -0...],\n",
" y=[-0.1875, 0.8125, 1.8125, 2.8125, 3.8125, 4.8125],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[-0.058485784438047361, -0.4991951463129855, -1.14719235991.., ],\n",
" y=[-0.0625, 0.9375, 1.9375, 2.9375, 3.9375, 4.9375],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[0.17368413589687096, -0.81432759074098926, -1.663358534013.., ],\n",
" y=[-0.0625, 0.9375, 1.9375, 2.9375, 3.9375, 4.9375],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[nan, nan, nan, -1.8613387562523367, 0.71540522914363935, 0.4..],\n",
" y=[0.0625, 1.0625, 2.0625, 3.0625, 4.0625, 5.0625],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[nan, nan, nan, 0.077081499605491488, 0.029973238326778784, 0..],\n",
" y=[0.0625, 1.0625, 2.0625, 3.0625, 4.0625, 5.0625],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[2.7038392374086837, 0.4528902025031718, -0.23136365140701978, ],\n",
" y=[0.1875, 1.1875, 2.1875, 3.1875, 4.1875, 5.1875],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Scatter(\n",
" x=[1.3680055029574745, -1.4013273410389135, 0.72907749532873667, ],\n",
" y=[0.1875, 1.1875, 2.1875, 3.1875, 4.1875, 5.1875],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" mode='markers',\n",
" name='_nolegend_',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Bar(\n",
" x=[0.0, 0.0, 0.0, 0.43216438004981078, 1.8909494857871501, 0.75..],\n",
" y=[-0.1875, 0.8125, 1.8125, 2.8125, 3.8125, 4.8125],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" orientation='h',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Bar(\n",
" x=[0.057599175729411797, 0.65676136852698741, 1.4052754469636.., ],\n",
" y=[-0.0625, 0.9375, 1.9375, 2.9375, 3.9375, 4.9375],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" orientation='h',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Bar(\n",
" x=[0.0, 0.0, 0.0, 0.89212862832342266, 0.37268923373520907, 0.2..],\n",
" y=[0.0625, 1.0625, 2.0625, 3.0625, 4.0625, 5.0625],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" orientation='h',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" ),\n",
" Bar(\n",
" x=[2.0359223701830791, 0.47421856926787087, 0.24885692196085843, ],\n",
" y=[0.1875, 1.1875, 2.1875, 3.1875, 4.1875, 5.1875],\n",
" marker=Marker(\n",
" line=Line()\n",
" ),\n",
" orientation='h',\n",
" xaxis='x1',\n",
" yaxis='y1'\n",
" )\n",
" ]),\n",
" layout=Layout(\n",
" annotations=Annotations([\n",
" Annotation(\n",
" x=0.83574148745519716,\n",
" y=0.646505376344086,\n",
" font=Font(),\n",
" text='C',\n",
" xanchor='left',\n",
" xref='paper',\n",
" yanchor='bottom',\n",
" yref='paper'\n",
" ),\n",
" Annotation(\n",
" x=0.82493279569892464,\n",
" y=0.57123655913978477,\n",
" font=Font(),\n",
" text='I1-one',\n",
" xanchor='left',\n",
" xref='paper',\n",
" yanchor='bottom',\n",
" yref='paper'\n",
" ),\n",
" Annotation(\n",
" x=0.82493279569892464,\n",
" y=0.49193548387096753,\n",
" font=Font(),\n",
" text='I2-two',\n",
" xanchor='left',\n",
" xref='paper',\n",
" yanchor='bottom',\n",
" yref='paper'\n",
" ),\n",
" Annotation(\n",
" x=0.82493279569892464,\n",
" y=0.41263440860215034,\n",
" font=Font(),\n",
" text='I3-three',\n",
" xanchor='left',\n",
" xref='paper',\n",
" yanchor='bottom',\n",
" yref='paper'\n",
" ),\n",
" Annotation(\n",
" x=0.82493279569892464,\n",
" y=0.33333333333333315,\n",
" font=Font(),\n",
" text='I4-four',\n",
" xanchor='left',\n",
" xref='paper',\n",
" yanchor='bottom',\n",
" yref='paper'\n",
" )\n",
" ]),\n",
" barmode='stack',\n",
" height=320,\n",
" hovermode='y',\n",
" margin=Margin(\n",
" r=47,\n",
" t=31,\n",
" b=40,\n",
" l=60,\n",
" pad=0\n",
" ),\n",
" showlegend=False,\n",
" width=480,\n",
" xaxis1=XAxis(\n",
" anchor='y1',\n",
" domain=[0.0, 1.0],\n",
" range=[-2.0, 3.0],\n",
" side='bottom',\n",
" tickfont=dict(),\n",
" type='linear'\n",
" ),\n",
" yaxis1=YAxis(\n",
" anchor='x1',\n",
" domain=[0.0, 1.0],\n",
" range=[-0.5, 5.5],\n",
" side='left',\n",
" tickfont=dict(),\n",
" tickmode=False,\n",
" title='A,B',\n",
" titlefont=dict(),\n",
" type='linear'\n",
" )\n",
" )\n",
")\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"D:\\Programs\\Anaconda3\\lib\\site-packages\\plotly\\matplotlylib\\renderer.py:516: UserWarning:\n",
"\n",
"Looks like the annotation(s) you are trying \n",
"to draw lies/lay outside the given figure size.\n",
"\n",
"Therefore, the resulting Plotly figure may not be \n",
"large enough to view the full text. To adjust \n",
"the size of the figure, use the 'width' and \n",
"'height' keys in the Layout object. Alternatively,\n",
"use the Margin object to adjust the figure's margins.\n",
"\n",
"D:\\Programs\\Anaconda3\\lib\\site-packages\\plotly\\matplotlylib\\renderer.py:445: UserWarning:\n",
"\n",
"Dang! That path collection is out of this world. I totally don't know what to do with it yet! Plotly can only import path collections linked to 'data' coordinates\n",
"\n",
"D:\\Programs\\Anaconda3\\lib\\site-packages\\plotly\\matplotlylib\\renderer.py:481: UserWarning:\n",
"\n",
"I found a path object that I don't think is part of a bar chart. Ignoring.\n",
"\n"
]
}
],
"source": [
"py_fig1 = tls.mpl_to_plotly(fig, strip_style=True)\n",
"print(py_fig1.to_string())"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<iframe id=\"igraph\" scrolling=\"no\" style=\"border:none;\"seamless=\"seamless\" src=\"https://plot.ly/~xpt/90.embed\" height=\"320px\" width=\"480px\"></iframe>"
],
"text/plain": [
"<plotly.tools.PlotlyDisplay object>"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Convert mpl figure object to Plotly plot \n",
"py.iplot(py_fig1, filename='test/bars_pandas_witherr')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"\n",
"df = cf.datagen.lines()\n",
"df.tail()\n",
"\n",
"# Plot!\n",
"plot_url = py.plot([{\n",
" 'x': df.index,\n",
" 'y': df[col],\n",
" 'name': col\n",
"} for col in df.columns], filename='cufflinks/simple-line')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-3-62db43ce601d>, line 18)",
"output_type": "error",
"traceback": [
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-3-62db43ce601d>\"\u001b[1;36m, line \u001b[1;32m18\u001b[0m\n\u001b[1;33m }, for col in p.columns], kind='barh', layout=LayoutR, filename='test/barh-mg')\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
]
}
],
"source": [
"LayoutR = go.Layout(\n",
" yaxis=dict(\n",
" autorange='reversed'\n",
" )\n",
")\n",
"\n",
"from plotly.graph_objs import *\n",
"\n",
"py.iplot([{\n",
" 'data': [\n",
" Bar(**{\n",
" 'x': p.index,\n",
" 'y': p[col],\n",
" 'name': col,\n",
" 'type': 'barh'\n",
" })\n",
" ],\n",
"}, for col in p.columns], kind='barh', layout=LayoutR, filename='test/barh-mg')\n",
"\n",
"# 'layout': LayoutR"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"4\" halign=\"left\">D</th>\n",
" <th colspan=\"4\" halign=\"left\">E</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>C</th>\n",
" <th>I1-one</th>\n",
" <th>I2-two</th>\n",
" <th>I3-three</th>\n",
" <th>I4-four</th>\n",
" <th>I1-one</th>\n",
" <th>I2-two</th>\n",
" <th>I3-three</th>\n",
" <th>I4-four</th>\n",
" </tr>\n",
" <tr>\n",
" <th>A</th>\n",
" <th>B</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"3\" valign=\"top\">bar bar bar</th>\n",
" <th>one one one</th>\n",
" <td>NaN</td>\n",
" <td>-2.840244</td>\n",
" <td>NaN</td>\n",
" <td>0.018895</td>\n",
" <td>NaN</td>\n",
" <td>-1.594734</td>\n",
" <td>NaN</td>\n",
" <td>-0.576189</td>\n",
" </tr>\n",
" <tr>\n",
" <th>three three three</th>\n",
" <td>NaN</td>\n",
" <td>-0.722621</td>\n",
" <td>NaN</td>\n",
" <td>0.665297</td>\n",
" <td>NaN</td>\n",
" <td>-2.419947</td>\n",
" <td>NaN</td>\n",
" <td>0.021346</td>\n",
" </tr>\n",
" <tr>\n",
" <th>two two two</th>\n",
" <td>NaN</td>\n",
" <td>1.335319</td>\n",
" <td>NaN</td>\n",
" <td>-0.656017</td>\n",
" <td>NaN</td>\n",
" <td>-0.792627</td>\n",
" <td>NaN</td>\n",
" <td>0.789807</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"3\" valign=\"top\">foo foo foo</th>\n",
" <th>one one one</th>\n",
" <td>-0.693236</td>\n",
" <td>NaN</td>\n",
" <td>2.234695</td>\n",
" <td>NaN</td>\n",
" <td>0.686581</td>\n",
" <td>NaN</td>\n",
" <td>-1.190331</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>three three three</th>\n",
" <td>-0.638832</td>\n",
" <td>NaN</td>\n",
" <td>-0.624958</td>\n",
" <td>NaN</td>\n",
" <td>-0.748206</td>\n",
" <td>NaN</td>\n",
" <td>-0.327225</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>two two two</th>\n",
" <td>-0.391719</td>\n",
" <td>NaN</td>\n",
" <td>-0.540170</td>\n",
" <td>NaN</td>\n",
" <td>-0.180333</td>\n",
" <td>NaN</td>\n",
" <td>-1.500611</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" D \\\n",
"C I1-one I2-two I3-three I4-four \n",
"A B \n",
"bar bar bar one one one NaN -2.840244 NaN 0.018895 \n",
" three three three NaN -0.722621 NaN 0.665297 \n",
" two two two NaN 1.335319 NaN -0.656017 \n",
"foo foo foo one one one -0.693236 NaN 2.234695 NaN \n",
" three three three -0.638832 NaN -0.624958 NaN \n",
" two two two -0.391719 NaN -0.540170 NaN \n",
"\n",
" E \n",
"C I1-one I2-two I3-three I4-four \n",
"A B \n",
"bar bar bar one one one NaN -1.594734 NaN -0.576189 \n",
" three three three NaN -2.419947 NaN 0.021346 \n",
" two two two NaN -0.792627 NaN 0.789807 \n",
"foo foo foo one one one 0.686581 NaN -1.190331 NaN \n",
" three three three -0.748206 NaN -0.327225 NaN \n",
" two two two -0.180333 NaN -1.500611 NaN "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.pivot_table(df, index=['A','B'], columns='C',values=['D','E'])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment