4 回答
TA贡献1829条经验 获得超13个赞
找到了答案。这应该可以使标题和值居中对齐并隐藏索引:
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df1.set_properties(**{'text-align': 'center'}).hide_index()
TA贡献1884条经验 获得超4个赞
只是为了澄清目标-您想要的是修改数据框的显示,而不是数据框本身。当然,在 Jupyter 的上下文中,您可能不关心区别 - 例如,如果拥有数据框的唯一目的是显示它 - 但区分这些东西是有帮助的,因此您可以使用正确的工具来做正确的事事物。
在这种情况下,正如您所发现的,样式器使您可以控制数据框显示的大部分方面 - 它通过输出和呈现 html 来实现。
因此,如果您的数据框在 Jupyter 中“看起来”像这样:
但是您希望它看起来更像这样:
您可以使用样式器应用任意数量的样式(将它们链接起来),以便呈现样式化的 HTML。
df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\ .hide(axis='index')
在 Jupyter 中,这将像我在上面显示的那样显示,但是如果您想在其他地方显示它并且想要底层 HTML(假设您正在基于此在 Flask 中呈现页面),您可以使用 .to_html() 方法,像这样:
以这种方式工作有两个基本优势:
数据框中的数据保持其原始状态 - 无论如何您都没有更改数据类型或内容
样式器打开了大量工具,使您的输出看起来完全符合您的要求。
在 Jupyter 和数字的上下文中,这特别有用,因为您不必修改数字(例如使用舍入或字符串转换),您只需应用样式格式并在不需要时避免使用指数符号。
这是一个修改后的示例,它显示了使用样式器“修复”Jupyter Pandas 数字显示问题是多么容易:
TA贡献1906条经验 获得超10个赞
试试 IPython.display
from IPython.display import HTML HTML(df.to_html(index=False))
TA贡献1801条经验 获得超8个赞
df.style.set_properties(subset=["Feature", "Value"], **{'text-align': 'center'})
添加回答
举报