Ran*_*hen 2 css python pandas jupyter 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)})
Run Code Online (Sandbox Code Playgroud)
但是当我尝试格式化 DataFrame 时,我得到了基本的 DataFrame,
df.style.format({
'A': '{:,.2f}'.format,
'B': '{:,.2%}'.format,
})
Run Code Online (Sandbox Code Playgroud)
那么我该如何更改代码,以便格式化的 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,
})
Run Code Online (Sandbox Code Playgroud)
在这些代码行中,您既为数据框指定了样式HTML,同时又为其列设置了格式化样式。
重要提示:这两个调用style.set_properties必须style.format链接起来。否则,仅使用最后一个。
1.- 因此,给出您的初始命令:
2.- 如果您只在列上应用样式:
3.- 如果您设置单元格的属性:
4.- 如果您还设置了表格属性,例如在th标题元素上:
如果您想在其他 DataFrame 之间共享这些样式,请查看Pandas 样式文档。
| 归档时间: |
|
| 查看次数: |
5721 次 |
| 最近记录: |