Python 将数据框转换为Excel:索引的垂直对齐

Python 将数据框转换为Excel:索引的垂直对齐,python,pandas,xlsxwriter,Python,Pandas,Xlsxwriter,给定以下数据帧: 作为pd进口熊猫 d=pd.DataFrame({'a':['a','a','b','b'], 'b':['a','b','c','d'], 'c':[1,2,3,4]}) d=d.groupby(['a','b']).sum() d 我希望导出时与索引的对齐方式相同(请参见最左边的列如何垂直居中?)。 难点在于,将其导出到Excel时,左列与每个单元格的顶部对齐: writer = pd.ExcelWriter(

给定以下数据帧: 作为pd进口熊猫

d=pd.DataFrame({'a':['a','a','b','b'],
               'b':['a','b','c','d'],
               'c':[1,2,3,4]})
d=d.groupby(['a','b']).sum()
d

我希望导出时与索引的对齐方式相同(请参见最左边的列如何垂直居中?)。 难点在于,将其导出到Excel时,左列与每个单元格的顶部对齐:

writer = pd.ExcelWriter('pandas_out.xlsx', engine='xlsxwriter')
workbook  = writer.book
f=workbook.add_format({'align': 'vcenter'})
d.to_excel(writer, sheet_name='Sheet1')
writer.save()
…产生

有没有办法通过XLSX Writer或其他库将列垂直居中


提前谢谢

您正在尝试更改标题的格式,因此应首先重置默认标题设置

pd.core.format.header_style = None
然后根据需要应用格式

format = workbook.add_format()
format.set_align('center')
format.set_align('vcenter')

worksheet.set_column('A:C',5, format)
下面是完整的工作代码

d=pd.DataFrame({'a':['a','a','b','b'],
               'b':['a','b','c','d'],
               'c':[1,2,3,4]})
d=d.groupby(['a','b']).sum()

pd.core.format.header_style = None

writer = pd.ExcelWriter('pandas_out.xlsx', engine='xlsxwriter')
workbook  = writer.book
d.to_excel(writer, sheet_name='Sheet1')

worksheet = writer.sheets['Sheet1']

format = workbook.add_format()
format.set_align('center')
format.set_align('vcenter')

worksheet.set_column('A:C',5, format)
writer.save()

试试这个结构。它看起来与您所做的类似,但我对xlsxwriter库了解不够,无法确定它们是否相同。我使用的不是“中心”,而是“左”,文本仍然与中心对齐center@acuriousengineer这里也一样:(