1 、pandas dataframe 带格式输出到 terminal/console 本身难度好像很大 遂转而输出到 html
https://github.com/pandas-dev/pandas/issues/18066
2 、html 表格高亮应该设置 df.style
的 background-color: yellow
属性
https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html
3 、考虑到 dataframe 本身数据量很大,为了效率应该使用 df.apply
而非 df.applymap
,后者是逐个元素处理
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html#pandas.DataFrame.apply
折腾了快一个星期了,但是死活不起作用,求助各位大佬帮忙😢
精简后的 python 代码如下:
import pandas as pd
import os
import webbrowser
def write_data_to_file(filename, content):
file = open(filename, mode='w')
file.write(content)
file.close()
def highlight_hot_color(col):
hot_color = ['red', 'yellow', 'orange']
check = [item in hot_color for item in col]
return ['background-color: yellow' if v else '' for v in check]
if __name__ == '__main__':
df = pd.DataFrame([['Allen', 'red', 20], ['Tom', 'yellow', 30], ['Jack', 'blue', 40], ['Bob', 'grey', 50]],
columns=['name', 'color', 'age'])
df.style.apply(highlight_hot_color, subset=['color'])
html = df.to_html(index=False)
file_name = 'test.html'
path_name = os.path.abspath(file_name)
url = 'file://' + path_name
write_data_to_file(path_name, html)
webbrowser.open(url)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.