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

如何调整Jupyter Notebook输出布局使其与《Python数据科学手册》一致?

实现DataFrame水平并排显示

默认调用display()展示多个DataFrame时,会按垂直顺序排列。要复刻《Python数据科学手册》里的水平布局效果,可以通过IPython的HTML渲染功能实现:

方法1:手动构建HTML表格

from IPython.display import display_html

# 生成各DataFrame的HTML代码
df1_html = df1.to_html()
df2_html = df2.to_html()
merged_df = pd.merge(df1, df2, on='employee')
merged_html = merged_df.to_html()

# 用表格布局横向拼接
display_html("""
<table style="width:100%; border: none;">
    <tr>
        <td style="padding: 0 15px; border: none;">{}</td>
        <td style="padding: 0 15px; border: none;">{}</td>
        <td style="padding: 0 15px; border: none;">{}</td>
    </tr>
</table>
""".format(df1_html, df2_html, merged_html), raw=True)

方法2:封装成复用函数

如果需要多次使用水平布局,可以写一个通用函数:

from IPython.display import display_html

def show_dfs_side_by_side(*dataframes):
    html_content = ""
    for df in dataframes:
        html_content += f"<td style='padding: 0 15px; border: none;'>{df.to_html()}</td>"
    display_html(f"<table style='border: none;'><tr>{html_content}</tr></table>", raw=True)

# 调用示例
show_dfs_side_by_side(df1, df2, pd.merge(df1, df2, on='employee'))

核心思路是把每个DataFrame转为HTML格式,再通过HTML表格的行元素(<tr>)将它们放在同一行的单元格(<td>)中,从而实现水平排列。

内容的提问来源于stack exchange,提问作者David Walden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:22:36