为什么在pandas.to_string的第一行中错过了空白?

时间:2017-07-07 05:33:36

标签: python pandas

以下代码显示:

a=pd.DataFrame({'element':['C','H','H','H'], 'x':[-2.55,-2.19,-2.19,-3.62], 'y':[ 0.6328,-0.3759, 1.1372,  0.6328], 'z':[ 0.00, 0.00,-0.87, 0.00]})

a

  element     x       y     z
0       C -2.55  0.6328  0.00
1       H -2.19 -0.3759  0.00
2       H -2.19  1.1372 -0.87
3       H -3.62  0.6328  0.00

b=a.to_string(formatters={'element': ' {:20s}'.format,'x': '  {:.8f}'.format,'y': '  {:.8f}'.format, 'z': '  {:.8f}'.format},  header=False,index=False))

输出是:

print(b)

C                      -2.55000000    0.63280000    0.00000000
 H                      -2.19000000   -0.37590000    0.00000000
 H                      -2.19000000    1.13720000   -0.87000000
 H                      -3.62000000    0.63280000    0.00000000

那么为什么第一行没有空白。我想在第一列中添加一个空白列,如下所示:

print(' '+b)

 C                      -2.55000000    0.63280000    0.00000000
 H                      -2.19000000   -0.37590000    0.00000000
 H                      -2.19000000    1.13720000   -0.87000000
 H                      -3.62000000    0.63280000    0.00000000

fl=open('zzz')
fl.writelines(' ')
fl.write(b)

编码很奇怪。

PS :fomatters字符串中冒号和逗号的含义是什么?我正在学习链接Format certain floating dataframe columns into percentage in pandas

是否有任何手册教授如何编写fomatters字符串

Additon :我的问题部分解决了问题:Using formatters to make string from dataframe,我的问题更侧重于为什么第一行忽略格式化程序中的空白。

0 个答案:

没有答案