Jupyter Notebook中print输出DataFrame无边框问题求助
解决Jupyter Notebook中print(DataFrame)无边框的问题
这个问题我之前也碰到过,核心原因其实很简单:当你直接在Jupyter里输入变量名df并运行时,Jupyter会调用pandas内置的HTML渲染器来展示表格,所以能看到带样式的边框;但用print(df)输出的是DataFrame的纯文本格式,本身就没有边框样式,浏览器只会按普通文本渲染。
下面给你几个实用的解决办法:
方法1:直接输出变量(最简单)
如果没有必须用print的需求,直接写变量名就行,这是Jupyter展示DataFrame的标准方式:import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(5,2), columns=["a","b"]) df # 直接写变量名,自动渲染带边框的HTML表格方法2:用HTML渲染实现带边框的"类print"输出
如果必须要在类似print的场景下输出带边框的表格,可以把DataFrame转成HTML格式,再用IPython的工具渲染:import pandas as pd import numpy as np from IPython.display import display_html df = pd.DataFrame(np.random.rand(5,2), columns=["a","b"]) # 转换为带边框的HTML,border参数控制边框粗细 display_html(df.to_html(border=1), raw=True)这种方式输出的表格和直接输变量名的样式一致,有清晰的边框。
方法3:用tabulate库输出带边框的文本表格
如果你更倾向于文本格式但想要边框,可以用tabulate库来格式化输出:
先安装库(第一次用的话):pip install tabulate然后使用:
import pandas as pd import numpy as np from tabulate import tabulate df = pd.DataFrame(np.random.rand(5,2), columns=["a","b"]) # tablefmt='grid'会生成带边框的文本表格,还有'fancy_grid'等样式可选 print(tabulate(df, headers='keys', tablefmt='grid'))输出的文本表格会有清晰的边框线,在Jupyter的输出框里也能清晰区分行列。
内容的提问来源于stack exchange,提问作者Angelo
相关产品推荐
相关产品推荐

