4 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
找到了答案。這應(yīng)該可以使標(biāo)題和值居中對(duì)齊并隱藏索引:
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df1.set_properties(**{'text-align': 'center'}).hide_index()

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
只是為了澄清目標(biāo)-您想要的是修改數(shù)據(jù)框的顯示,而不是數(shù)據(jù)框本身。當(dāng)然,在 Jupyter 的上下文中,您可能不關(guān)心區(qū)別 - 例如,如果擁有數(shù)據(jù)框的唯一目的是顯示它 - 但區(qū)分這些東西是有幫助的,因此您可以使用正確的工具來(lái)做正確的事事物。
在這種情況下,正如您所發(fā)現(xiàn)的,樣式器使您可以控制數(shù)據(jù)框顯示的大部分方面 - 它通過(guò)輸出和呈現(xiàn) html 來(lái)實(shí)現(xiàn)。
因此,如果您的數(shù)據(jù)框在 Jupyter 中“看起來(lái)”像這樣:
但是您希望它看起來(lái)更像這樣:
您可以使用樣式器應(yīng)用任意數(shù)量的樣式(將它們鏈接起來(lái)),以便呈現(xiàn)樣式化的 HTML。
df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\ .hide(axis='index')
在 Jupyter 中,這將像我在上面顯示的那樣顯示,但是如果您想在其他地方顯示它并且想要底層 HTML(假設(shè)您正在基于此在 Flask 中呈現(xiàn)頁(yè)面),您可以使用 .to_html() 方法,像這樣:
以這種方式工作有兩個(gè)基本優(yōu)勢(shì):
數(shù)據(jù)框中的數(shù)據(jù)保持其原始狀態(tài) - 無(wú)論如何您都沒(méi)有更改數(shù)據(jù)類(lèi)型或內(nèi)容
樣式器打開(kāi)了大量工具,使您的輸出看起來(lái)完全符合您的要求。
在 Jupyter 和數(shù)字的上下文中,這特別有用,因?yàn)槟槐匦薷臄?shù)字(例如使用舍入或字符串轉(zhuǎn)換),您只需應(yīng)用樣式格式并在不需要時(shí)避免使用指數(shù)符號(hào)。
這是一個(gè)修改后的示例,它顯示了使用樣式器“修復(fù)”Jupyter Pandas 數(shù)字顯示問(wèn)題是多么容易:

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
試試 IPython.display
from IPython.display import HTML HTML(df.to_html(index=False))

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
df.style.set_properties(subset=["Feature", "Value"], **{'text-align': 'center'})
添加回答
舉報(bào)