<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