我可以使用Pandas从excel文件导入数据:
xl = read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])
现在我将xl中的所有数据都作为DataFrame.我想根据另一个函数中定义的条件为该数据中的一些单元格着色,并将其导出(使用颜色编码)到Excel文件.
有人能告诉我该怎么办?
谢谢.
解决方法:
Pandas有一个相对较新的Styler功能,您可以将条件格式类型操作应用于数据帧.
http://pandas.pydata.org/pandas-docs/stable/style.html
您可以使用一些内置函数(如background_gradient或bar)来复制类似excel的功能,如条件格式和数据栏.您还可以格式化单元格以显示百分比,浮点数,整数等,而无需更改原始数据帧.
以下是使用Styler可以制作的图表类型的示例(这是一个无意义的图表,但仅用于演示功能):
要利用Styler的全部功能,您应该熟悉Styler.apply()和Styler.applymap()API.这些允许您创建自定义函数并将它们应用于表的列,行或元素.例如,如果我想为绿色单元格绿色和红色单元格着色,我会创建一个函数
def _color_red_or_green(val):
color = 'red' if val < 0 else 'green'
return 'color: %s' % color
并在我的Styler对象上调用它,即df.style.applymap(_color_red_or_green).
关于导出回Excel,据我所知,这在Styler中尚不支持,所以如果你出于某种原因需要Excel,我可能会去xlsxwriter路线.但是,根据我的经验,这是一个很好的纯Python替代方案,例如matplotlib图表和电子邮件/报告.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。