将数据帧导出为ex​​cel时着色单元格

时间:2018-06-07 22:34:31

标签: pandas dataframe pandas.excelwriter

我的数据框“df”如下:

x = [1,3,5,7] 
y1 = [3,2,2,2] 
y2 = [2,5,2,2] 
y3 = [7,2,2,1]
df = pd.DataFrame({'x': x, 'y1': y1, 'y2': y2, 'y3': y3})

writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()

我希望excel输出文件在列x与其他列的相互值中显示相同的颜色。 enter image description here

1 个答案:

答案 0 :(得分:1)

如果dictionary指定了颜色,则可以使用styles

def color(a):
    d = {1:'yellow', 3:'green', 5:'blue', 7:'red'}

    d1 = {k: 'background-color:' + v for k, v in d.items()}
    df1 = pd.DataFrame(index=a.index, columns=a.columns)
    df1 = a.applymap(d1.get).fillna('')
    return df1

df.style.apply(color, axis=None).to_excel('styled.xlsx', engine='openpyxl', index=False)