{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "See https://github.com/pydata/pandas/issues/9424" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd\n", "from StringIO import StringIO" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data = \"\"\"A,A,B,B,B\n", " 1,2,3,4,5\n", " 6,7,8,9,10\n", " 11,12,13,14,15\"\"\"\n", "\n", "# check default beahviour\n", "df = pd.read_table(StringIO(data), sep=',')\n", "assert (list(df.columns) == ['A', 'A.1', 'B', 'B.1', 'B.2'])\n", "\n", "df = pd.read_table(StringIO(data), sep=',', mangle_dupe_cols=False)\n", "assert (list(df.columns)==['A', 'A', 'B', 'B', 'B'])\n", "\n", "df = pd.read_table(StringIO(data), sep=',', mangle_dupe_cols=True)\n", "assert (list(df.columns)== ['A', 'A.1', 'B', 'B.1', 'B.2'])" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AA.1BB.1B.2
012345
1678910
21112131415
\n", "
" ], "text/plain": [ " A A.1 B B.1 B.2\n", "0 1 2 3 4 5\n", "1 6 7 8 9 10\n", "2 11 12 13 14 15" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_table(StringIO(data), sep=',', mangle_dupe_cols=True)\n", "df" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "| | A | A.1 | B | B.1 | B.2 |\n", "|---:|----:|------:|----:|------:|------:|\n", "| 0 | 1 | 2 | 3 | 4 | 5 |\n", "| 1 | 6 | 7 | 8 | 9 | 10 |\n", "| 2 | 11 | 12 | 13 | 14 | 15 |\n" ] } ], "source": [ "import tabulate\n", "print tabulate.tabulate(df, headers=df.columns.tolist(), tablefmt='pipe')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AABBB
022555
177101010
21212151515
\n", "
" ], "text/plain": [ " A A B B B\n", "0 2 2 5 5 5\n", "1 7 7 10 10 10\n", "2 12 12 15 15 15" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_table(StringIO(data), sep=',', mangle_dupe_cols=False)\n", "df" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "| | A | A | B | B | B |\n", "|---:|----:|----:|----:|----:|----:|\n", "| 0 | 2 | 2 | 5 | 5 | 5 |\n", "| 1 | 7 | 7 | 10 | 10 | 10 |\n", "| 2 | 12 | 12 | 15 | 15 | 15 |\n" ] } ], "source": [ "print tabulate.tabulate(df, headers=df.columns.tolist(), tablefmt='pipe')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.8" } }, "nbformat": 4, "nbformat_minor": 0 }