<Python, pandas> カラムの出力を左によせる。

pandas.DataFrame.to_string()で出力した文字を左によせる方法。
formattersオプションに、対象カラムに対しての出力様式をdictで指定する。
ややこしいのがformatを2回呼び出す必要がある。

では、順を追って。まずはフォーマット文の例。5文字幅で左によせる。

In [10]: '{:<5}'.format('c')
Out[10]: 'c    '

ちと確認。

In [11]: type('{:<5}'.format('c'))
Out[11]: str

In [12]: type('{:<5}'.format)
Out[12]: builtin_function_or_method

In [13]: type('{:<5}')
Out[13]: str

.formatすると、str.formatになる。
で、次のデータフレームがあった時、

In [14]: df = pd.DataFrame(data=['a','b'], columns=['y'])

In [14]: df
Out[14]:
   y
0  a
1  b
In [15]: f = '{{:<5}}'.format

In [16]: f
Out[16]: <function str.format>

In [17]: df.to_string(sys.stdout,formatters={'y':f})
       y
0  {:<5}
1  {:<5}

おりょ。。。失敗。
で、

In [18]: f = '{{:<5}}'.format().format

In [19]: f
Out[19]: <function str.format>

In [20]: df.to_string(sys.stdout, formatters={'y':f})
       y
0  a
1  b

にゃるほど。

お世話になったstackoverflow
http://stackoverflow.com/questions/25777037/how-can-i-left-justify-text-in-a-pandas-dataframe-column-in-an-ipython-notebook

ぱんだのマニュアル
pandas.DataFrame.to_string — pandas 0.17.0 documentation