python上使用xlsxwriter,使用带有'3_color_scale'的{item}格式函数

时间:2017-07-27 21:17:18

标签: python python-2.7 pandas xlsxwriter

我有一个我写入excel表的pandas DataFrame。然后我想格式化它,以便显示该DataFrame的热图。

我认为最好的方法是使用worksheet.conditional_format()函数和{'type': '3_color_scale'}作为我的论点。

但是,我注意到这个只保留整数的单元格中的颜色。它不会为任何有漂浮物的东西上色。有谁知道如何解决这个问题?

以下是代码示例。

writer = pd.ExcelWriter(file_name, engine='xlsxwriter')
df.to_excel(writer, sheet_name=selected_factor, startrow=row_location, startcol=col_location)
worksheet = writer.sheets['Sheet 1 testing']
worksheet.conditional_format('B8:E17',{'type': '3_color_scale'})

我在Python 2.7并使用pandas version 0.15.2

修改

我弄清楚为什么它给我带来了麻烦,这些数字被作为字符串保存到电子表格中而不是作为花车。

1 个答案:

答案 0 :(得分:1)

运行以下示例时,我没有看到此问题。它突出显示整数和浮点数:

import pandas as pd

# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20.5, 30, 40, 50.7, 62, 70]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_conditional.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Apply a conditional format to the cell range.
worksheet.conditional_format('B2:B8', {'type': '3_color_scale'})

# Close the Pandas Excel writer and output the Excel file.
writer.save()

输出:

enter image description here