python - 如何将 Format 对象应用于 pandas 中的索引值
问题描述
问题:我有一个数据框,其列名具有各自的值。但是当我将格式对象应用于列标题时,它们没有响应。
代码:
import pandas as pd
root = "C:\Users\543904\Desktop\New folder\"
dict = {'name':["aparna", "pankaj"],
'degree': ["MBA", "BCA"],
'score':[90, 40]}
df = pd.DataFrame(dict)
writer = pd.ExcelWriter(root + 'output', engine = "xlsxwriter")
df.to_excel(writer, sheet_name='df', index = False)
workbook = writer.book
worksheet = writer.sheets['df']
Format_Object = workbook.add_format({'text_wrap': True})
Format_Object.set_bold()
Format_Object.set_align('center')
Format_Object.set_align('top')
Format_Object.set_border(1)
Format_Object.set_bg_color('#0ef0ce')
worksheet.set_row(0, 20, Format_Object)
writer.save()
预期的:
实际的:
解决方案
这在有关使用 Python Pandas 和 XlsxWriter的 XlsxWriter 文档中进行了解释:
Pandas 使用默认单元格格式写入数据帧标头。由于它是一种单元格格式,因此不能使用
set_row()
. 如果您希望使用自己的标题格式,那么最好的方法是关闭 Pandas 的自动标题并编写自己的标题。例如:
# Turn off the default header and skip one row to allow us to insert a
# user defined header.
df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)
# Get the xlsxwriter workbook and worksheet objects.
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# Add a header format.
header_format = workbook.add_format({
'bold': True,
'text_wrap': True,
'valign': 'top',
'fg_color': '#D7E4BC',
'border': 1})
# Write the column headers with the defined format.
for col_num, value in enumerate(df.columns.values):
worksheet.write(0, col_num + 1, value, header_format)
推荐阅读
- javascript - 我应该将我的 redux 选择器分开还是从 1 个选择器中指定我需要的地图
- php - 使用 php 以 html 格式将答案发送到电子邮件
- android - 在 Travis CI 中构建 apk 因“仪器失败”而失败
- javascript - 迭代嵌套数组,es6方式,我已经使用foreach完成了
- json - jq:从一个对象中提取特定键到另一个对象
- css - 如何在Vue中创建一个具有50%背景颜色的组件
- c - 从文件中读取输入的矩阵运算
- android - 如何从linkify textview获取url
- ios - UITableViewCell 高度根据 UIImageview 的纵横比展开
- javascript - 我怎样才能逃脱'。猫鼬更新操作中字段名称中的字符?