我有一个我写入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
。
修改
我弄清楚为什么它给我带来了麻烦,这些数字被作为字符串保存到电子表格中而不是作为花车。
答案 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()
输出: