我正在使用to_excel()
将DataFrames写入Excel。我认为,我需要使用openpyxl而不是XlsxWriter作为编写器引擎,因为我需要打开现有的Excel文件并添加工作表。不管怎样,我都对使用openpyxl进行其他格式化有深入的了解,所以我不热衷于更改。
这将编写DataFrame并格式化浮点数,但我不知道如何格式化int dtypes。
import pandas as pd
from openpyxl import load_workbook
df = pd.DataFrame({'county':['Cnty1','Cnty2','Cnty3'], 'ints':[5245,70000,4123123], 'floats':[3.212, 4.543, 6.4555]})
fileName = "Maryland - test.xlsx"
book = load_workbook(fileName)
writer = pd.ExcelWriter(fileName, engine='openpyxl')
writer.book = book
df.to_excel(writer, sheet_name='Test', float_format='%.2f', header=False, index=False, startrow=3)
ws = writer.sheets['Test']
writer.save()
writer.close()
尝试使用此方法,但我认为它仅适用于XlsxWriter:
intFormat = book.add_format({'num_format': '#,###'})
ws.set_column('B:B', intFormat)
这种类型的东西可以逐个循环使用,但是有很多数据:
ws['B2'].number_format = '#,###'
答案 0 :(得分:0)
这可以通过使用 openpyxl.styles 中的 number_fomat 来修复
from openpyxl.styles import numbers
def sth():
#This will output a number like: 2,000.00
cell.number_format = numbers.FORMAT_NUMBER_COMMA_SEPARATED1
查看此链接以进一步阅读thedocs