我正在两个数据框之间建立差异,并希望将它们保存到excel中(受great answer here的启发):
def highlight_diff(data, color='orange'):
attr = 'background-color: {}'.format(color)
other = data.xs('Original', axis='columns', level=-1)
return pd.DataFrame(np.where(data.ne(other, level=0), attr, ''),
index=data.index, columns=data.columns)
在这一点上,如果我在JupyterLab中查看data_swapped.style.apply(highlight_diff, axis=None)
,它将看起来很棒-第二组中的不同列都有背景。
当您尝试将其保存到excel时,它将失败:
writer = pd.ExcelWriter('diff.xls')
data_swapped.style.apply(highlight_diff, axis=None).to_excel(writer, 'Sheet1')
writer.save()
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xlwt/Style.py in _parse_strg_to_obj(strg,obj,parse_dict,field_sep,line_sep,intro_sep,esc_char,debug) 第636章死了 637如果结果为None: -> 638提高EasyXFCallerError('部分%r是未知的'%部分) 第639回 640休息
EasyXFCallerError:“填充”部分未知
我觉得xlwt
使用不同的转换来标记标签和颜色名称,并认为我会作弊:
attr = 'fore_color: light_yellow'
它将删除该异常,但是生成的excel没有我要的样式。这种样式化方法对Excel完全可以重用吗?