如何调整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
相关产品推荐
相关产品推荐

