pandas 数据框到 html - 边界不准确
pandas dataframe to html - border not accurate
我有一个如下所示的数据框
test_id,status,total,cnt_days,age
1,passed,234%,3,21
2,passed,54%,5,29
11,failed,21%,4,35
15,failed,20%.21,6,57
51,passed,23%,21,80
75,failed,12%,32,43
df1 = pd.read_clipboard(sep=',')
我的objective是
a) 使用 black color
在行和列之间设置深色边框线
b) header
使用 Green
颜色
c) 对总计 > 30%
的行使用 Red
颜色
d) 将样式化数据框转换为 html object
e) 将样式化数据框导出到 .xlsx excel 文件
所以,在这个 的帮助下,我尝试了以下
def highlight(row):
if row['total'] > 30:
return ['background-color: red'] * len(row)
else:
return [''] * len(row)
s = data.style.apply(highlight, axis=1)
#data['Total'] = data['Total'].astype(str) + "%"
s = s.set_properties(
**{'border': '1px black solid !important'}).set_table_styles([{
'selector': '.col_heading',
'props': 'background-color: green; color: black;'
}])
output = s.to_html(index=False)
但这会产生不正确的输出,不同单元格和边框之间存在间隙。另一个问题是我的 Total
列中有 %
符号。我如何使用它来进行 > 30% 检查并最终在输出 table.
中显示 % symbol
所以,我希望我的输出如下所示。您可以看到每个单元格和行之间的边框如何没有间隙。我希望输出像 excel table.
s = s.set_properties(
**{'border': '1px black solid !important'}).set_table_attributes(
'style="border-collapse:collapse"').set_table_styles([{
'selector': '.col_heading',
'props': 'background-color: green; color: black; border-collapse: collapse; border: 1px black solid !important;'
}])
输出
我有一个如下所示的数据框
test_id,status,total,cnt_days,age
1,passed,234%,3,21
2,passed,54%,5,29
11,failed,21%,4,35
15,failed,20%.21,6,57
51,passed,23%,21,80
75,failed,12%,32,43
df1 = pd.read_clipboard(sep=',')
我的objective是
a) 使用 black color
b) header
使用Green
颜色
c) 对总计 > 30%
的行使用Red
颜色
d) 将样式化数据框转换为 html object
e) 将样式化数据框导出到 .xlsx excel 文件
所以,在这个
def highlight(row):
if row['total'] > 30:
return ['background-color: red'] * len(row)
else:
return [''] * len(row)
s = data.style.apply(highlight, axis=1)
#data['Total'] = data['Total'].astype(str) + "%"
s = s.set_properties(
**{'border': '1px black solid !important'}).set_table_styles([{
'selector': '.col_heading',
'props': 'background-color: green; color: black;'
}])
output = s.to_html(index=False)
但这会产生不正确的输出,不同单元格和边框之间存在间隙。另一个问题是我的 Total
列中有 %
符号。我如何使用它来进行 > 30% 检查并最终在输出 table.
% symbol
所以,我希望我的输出如下所示。您可以看到每个单元格和行之间的边框如何没有间隙。我希望输出像 excel table.
s = s.set_properties(
**{'border': '1px black solid !important'}).set_table_attributes(
'style="border-collapse:collapse"').set_table_styles([{
'selector': '.col_heading',
'props': 'background-color: green; color: black; border-collapse: collapse; border: 1px black solid !important;'
}])
输出