gpt4 book ai didi

python - Xlsxwriter 将 pandas DataFrame 输出格式化为 Excel 时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:37 25 4
gpt4 key购买 nike

我创建了一个 pandas hub_table 并使用 xlsxwriter 将其导出到 Excel。然而,格式化并没有按照我的想法去做。我查看了 xlsxwriter 文档以及 Stack Overflow 上的其他问题,但没有找到解决方案。我有一种感觉,我忽略了一些显而易见的事情。

# Write to Excel
path = 'some/path'
writer = pd.ExcelWriter(path, engine='xlsxwriter')
df.to_excel(writer, sheet_name='df')

set_column() 的列宽正在起作用。所以我已经做到了这一点,这很好。但 wb.add_format() 子句中的 'bold': False'align': 'left' 则不然。

# Make it look nice
wb = writer.book
ws = writer.sheets['df']

format = wb.add_format({'bold': False,
'align': 'left'})
ws.set_column('A:C', None, format)

ws.set_column(0,0, 10.2)
ws.set_column(1,1, 25.2)
ws.set_column(2,2, 15.2)

writer.save()

或者,以下代码会应用格式,但会删除单元格 B3 的内容:

ws.write('B3', None, format)

我可以让我的列左对齐而不是粗体吗?

<小时/>

更新:我已升级到 pandas 17.0 并将代码更新为:

format_bold = wb.add_format({'bold': False})
format_and_left = wb.add_format({'align': 'left', 'bold': False})

ws.set_column('A:A', 10.2, format_bold)
ws.set_column('B:B', 25.2, format_and_left)
ws.set_column('C:C', 15.2, format_bold)

还是没有运气。我已经通过使用 print pd.__version__ 确认我的解释器正在使用 pandas 版本 0.17.0。我是不是还做错了什么?

最佳答案

正如 @Jkdc 指出的那样,值得确保您使用的是 Pandas 16+,因为早期版本中存在 XlsxWriter set_column 问题。

但是,您的代码中还存在一个问题,即您要覆盖列 A:Cset_column() 属性,该列的格式与其他列调用的格式相同ABC 不包含:

ws.set_column('A:C', None, format)

ws.set_column(0,0, 10.2)
ws.set_column(1,1, 25.2)
ws.set_column(2,2, 15.2)

像下面这样的东西可能应该有效(除非有其他问题):

ws.set_column(0, 0, 10.2, format)
ws.set_column(1, 1, 25.2, format)
ws.set_column(2, 2, 15.2, format)

另请注意,as outlined in the documentation这不适用于日期时间列。对于这些,您必须使用 Pandas API 来指定格式,并且仅限于设置数字格式。

关于python - Xlsxwriter 将 pandas DataFrame 输出格式化为 Excel 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com