You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:26:53