为什么string.format()的结果是一个字符串,即使对于数字?

时间:2015-07-21 20:40:35

标签: python format

以下评估为true:

'{:.2f}'.format(2.0) > '{:.2f}'.format(10.0)

我想使用dataframe.to_excel以两位小数(2为2.00)编写一个数字,但它会显示为文本而不是单元格中的数字。

更新

import pandas as pd

data_table = [[1.0,2.0,3.0],[4.0,5.0,6.0]]
dataframe = pd.DataFrame(data_table)

writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
dataframe.to_excel(writer,float_format='%11.2f', index=False)
writer.save() 

它仍显示6而不是6.00。当我打开它时,也许excel剥离0

1 2 3
4 5 6

2 个答案:

答案 0 :(得分:1)

to_excel有一个float_format选项。

答案 1 :(得分:0)

对结果使用int()

为什么String.format返回一个字符串?它不会检查它是否为数字,并且只应用于字符串。

编辑:

当然,您希望在生成的Excel文件中显示该格式。

使用:

Dataframe.to_excel(excel_writer, float_format=float_format, **kwargs)

而** kwargs是你的另一个参数,float_format是你的格式。

如果您将数字保存为数字

,这将在Excel中正确格式化数字