Change default options in pandas
Question: I'm wondering if there's any way to change the default display options for
pandas. I'd like to change the display formatting as well as the display width
each time I run python, eg:

    
    
    pandas.options.display.width = 150
    

I see the defaults are hard-coded in `pandas.core.config_init`. Is there some
way in pandas to do this properly? Or if not, is there some way to set up
ipython at least to change the config each time I import pandas? Only thing I
can think of is making my own mypandas library that wraps pandas with some
extra commands issued each time it's loaded. Any better ideas?


Answer: As described here, there are [iPython config
files](http://ipython.org/ipython-
doc/rel-0.10.2/html/config/customization.html#ipy-user-conf-py):

    
    
    # Most of your config files and extensions will probably start
    # with this import
    
    import IPython.ipapi
    ip = IPython.ipapi.get()
    
    # You probably want to uncomment this if you did %upgrade -nolegacy
    # import ipy_defaults
    
    import os
    import pandas
    
    
    def main():
    
        #ip.dbg.debugmode = True
        ip.dbg.debug_stack()
    
        # uncomment if you want to get ipython -p sh behaviour
        # without having to use command line switches
        import ipy_profile_sh
        import jobctrl
    
        # Configure your favourite editor?
        # Good idea e.g. for %edit os.path.isfile
    
        #import ipy_editors
    
        # Choose one of these:
    
        #ipy_editors.scite()
        #ipy_editors.scite('c:/opt/scite/scite.exe')
        #ipy_editors.komodo()
        #ipy_editors.idle()
        # ... or many others, try 'ipy_editors??' after import to see them
    
        # Or roll your own:
        #ipy_editors.install_editor("c:/opt/jed +$line $file")
    
    
        o = ip.options
        # An example on how to set options
        #o.autocall = 1
        o.system_verbose = 0
    
        #import_all("os sys")
        #execf('~/_ipython/ns.py')
    
    
        # -- prompt
        # A different, more compact set of prompts from the default ones, that
        # always show your current location in the filesystem:
    
        #o.prompt_in1 = r'\C_LightBlue[\C_LightCyan\Y2\C_LightBlue]\C_Normal\n\C_Green|\#>'
        #o.prompt_in2 = r'.\D: '
        #o.prompt_out = r'[\#] '
    
        # Try one of these color settings if you can't read the text easily
        # autoexec is a list of IPython commands to execute on startup
        #o.autoexec.append('%colors LightBG')
        #o.autoexec.append('%colors NoColor')
        o.autoexec.append('%colors Linux')
    
        pandas.options.display.width = 150
    
    
    # some config helper functions you can use
    def import_all(modules):
        """ Usage: import_all("os sys") """
        for m in modules.split():
            ip.ex("from %s import *" % m)
    
    def execf(fname):
        """ Execute a file in user namespace """
        ip.ex('execfile("%s")' % os.path.expanduser(fname))
    
    main()
    

Probably better to make [separate Python profiles](http://ipython.org/ipython-
doc/rel-0.10.2/html/config/customization.html#ipython-profiles). (The code is
untested).

