title: How to customize headers and column widths of DataFrame display?
body: <p>As a rule, I like to use long, descriptive column names (e.g. <code>estimated_background_signal</code> rather than just <code>bg</code>) for <code>DataFrame</code> objects.  The one downside of this preference is that the <code>DataFrame</code>'s display form has several columns that are much wider than their values require.  For example:</p>
  
  <pre><code>In [10]: data.head()
       barcode estimated_background_signal inhibitor_code inhibitor_concentration
  0  R00577279                         133            IRB                   0.001
  1  R00577279                         189            SNZ                   0.001
  2  R00577279                         101            CMY                   0.001
  3  R00577279                         112            BRC                   0.001
  4  R00577279                         244            ISB                   0.001
  </code></pre>
  
  <p>It would be nice if the display were narrower.  Disregarding the headers, the narrowest display would be:</p>
  
  <pre><code>0 R00577279 113 IRB 0.001
  1 R00577279 189 SNZ 0.001
  2 R00577279 101 CMY 0.001
  3 R00577279 112 BRC 0.001
  4 R00577279 244 ISB 0.001
  </code></pre>
  
  <p>...but eliminating the headers altogether is not an entirely satisfactory solution.  A better one would be to make the display wide enough to allow for some headers, possibly taking up several lines:</p>
  
  <pre><code>    barcode estim inhib inhib
              ated_ itor_ itor_
              backg code  conce
  0 R00577279   113   IRB 0.001
  1 R00577279   189   SNZ 0.001
  2 R00577279   101   CMY 0.001
  3 R00577279   112   BRC 0.001
  4 R00577279   244   ISB 0.001
  </code></pre>
  
  <p>It's probably obvious that no single convention would be suitable for all situations, but, in any case, does <code>pandas</code> offer any way to customize the headers and column widths of a <code>DataFrame</code>'s display form?</p>