python - 带边框的 Python Jupyter Notebook 样式数据框
问题描述
我正在使用以下代码在 jupyter 中格式化带有边框的数据框
%%HTML
<style type="text/css">
table.dataframe td, table.dataframe th {
border: 1px black solid !important;
color: black !important;
}
</style>
import pandas as pd
import numpy as np
df = pd.DataFrame( data={'A': range(5), 'B': np.arange(0, 1 , 0.2)})
但是当我尝试格式化 DataFrame 时,我得到了基本的 DataFrame,
df.style.format({
'A': '{:,.2f}'.format,
'B': '{:,.2%}'.format,
})
那么如何更改代码以使格式化的 df 出现边框呢?
解决方案
解释问题
当您使用 设置样式时%%HTML
,您的目标只是那些HTML
与您的选择器匹配的元素CSS
。
将 a 设置style
为数据框,然后将其显示在单元格中时,HTML Table
生成的不再具有HTML Class
命名dataframe
(但有点随机 ID)。这就是您%%HTML
不适用于样式数据框的输出的原因。
那该怎么办?
可能的解决方案
通过 Pandas 设置表格本身的样式:
df.style.set_properties(
**{'color': 'black !important',
'border': '1px black solid !important'}
).set_table_styles([{
'selector': 'th',
'props': [('border', '1px black solid !important')]
}]).format({
'A': '{:,.2f}'.format,
'B': '{:,.2%}'.format,
})
在这些代码行中,您既要为数据框指定HTML
样式,又要为其列设置格式样式。
重要:这两个调用,两者都style.set_properties
必须style.format
链接。否则,只会使用最后一个。
解决方法:一步一步
1.-因此,给定您的初始命令:
2.- 如果您只在列上应用样式:
3.- 如果您为单元格设置属性:
4.- 如果您还设置表属性,例如,在th
标题元素上:
走得更远
如果您想在其他 DataFrame 中共享这些样式,请查看Pandas 样式文档。
推荐阅读
- ios - UIAccessibility.convertToScreenCoordinates() 总是返回一个 CGRect(0,0,0,0)
- javascript - 将数字分成 3 位数字组,其余为 2 位数字
- java - ANTLR:错误恢复并不总是与最长匹配的上下文匹配
- sql - 使用子查询优化 SQL 到?
- docker - 使用 docker-compose 启动 Docker 容器
- groovy - 根据值集合删除映射条目 - 如何以 Groovy 方式进行?
- html - 响应式水平滚动 CSS Grid,每个断点具有固定数量的网格项
- python - 如何在python中的文本文件中的每一行增加字符串中的数字?
- linux - 使用 sh -c 的带有 xargs 的多个命令不起作用
- android - 如何在 Nougat 中启用“未知来源”后立即开始安装 apk 文件?