以下計算結果爲true:爲什麼string.format()的結果是一個字符串,即使是數字?
'{:.2f}'.format(2.0) > '{:.2f}'.format(10.0)
我想寫一些使用dataframe.to_excel
兩位小數(2爲2.00)到excel,但它被顯示爲文本,而不是在一個單元格的數字。
更新:
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。也許當我打開它
1 2 3
4 5 6
你爲什麼期望'str.format()'產生除字符串以外的任何東西?即使如此,如果舍入數字(限於2位小數)與未被佔用的對應數字相比有什麼不同?如果您需要近似平等,請使用'round()'函數。 –
Excel具有格式化選項,使用這些選項可以更改數字顯示方式。將浮點格式化爲字符串在Excel單元格中確實不起作用。 –
如上所述,'str.format()'產生一個字符串。原始數字未格式化 - 這就是格式化數字以字符串形式存儲的原因。此外,Excel不會自動檢測單元格內容,將格式化的「數字」轉換爲Excel格式設置後的數字? – TigerhawkT3