Jupyter NoteBook Slide - 数据帧格式和大小

Emi*_*m23 8 python slideshow dataframe jupyter-notebook

对于"代码呈现会话",我想将我的Jupyter NoteBook转换为幻灯片.它实际上非常好,但对于Dataframe显示.

我目前在笔记本上有这个显示:

在此输入图像描述

我在幻灯片上得到了:

在此输入图像描述

为什么?是否可以在笔记本/幻灯片上获得相同的渲染?

谢谢

小智 -1

对的,这是可能的。实现此目的的一种方法是使用pandas库的Styling功能来自定义 DataFrame 的样式。

例如,如果您有这个数据框:

data = {'Name': ['Hana', 'Mohsen', 'Bob'],
        'Age': [25, 30, 21],
        'Salary': [1500, 2000, 3000]}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

你可以使用这个:

styled_df = df.style \
    .set_properties(**{'background-color': 'white',
                        'color': 'black',
                        'border-color': 'black'}) \
    .set_table_styles([{'selector': 'th',
                        'props': [('border', '1px solid black')]}])
Run Code Online (Sandbox Code Playgroud)

此代码设置 DataFrame 的背景颜色、字体颜色和边框颜色,并向表标题添加边框。set_properties您可以通过向和方法添加更多属性或样式来进一步自定义样式set_table_styles

要在 Jupyter Notebook 和幻灯片中显示样式化的 DataFrame,您只需在两个环境中运行此代码即可。样式化的 DataFrame 将在两种环境中以相同的样式显示。

DataFrame.to_html如果您想在幻灯片中包含样式代码,您可能需要使用和函数将 DataFrame 转换为图像IPython.display.HTML

例如,您可以使用以下代码将 DataFrame 转换为图像:

from IPython.display import HTML
# convert the DataFrame to an HTML table
html_table = df.to_html()
# display the HTML table as an image
HTML(html_table)
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 表作为字符串存储在 html_table 变量中。接下来,使用 IPython.display 模块中的 HTML 函数将 HTML 表显示为 Jupyter Notebook 输出中的图像。这会将 DataFrame 显示为具有默认样式的表格。您可以通过将CSS属性传递给 to_html 方法的 style 参数来自定义 HTML 表格的样式。例如:

html_table = df.to_html(style={'background-color': 'lightgray',
                                'border': '1px solid black',
                                'padding': '5px'})
Run Code Online (Sandbox Code Playgroud)

这将设置 HTML 表格的背景颜色、边框和填充。您可以通过向 style 参数添加更多 CSS 属性来进一步自定义样式。

尽管使用 to_html 和 HTML 将 DataFrame 转换为图像时,生成的图像可能比 Jupyter Notebook 单元格大,这可能会导致滚动。您可以通过调整 Jupyter Notebook 单元格的大小或在 HTML 表格样式中使用CSS max-width 属性来避免这种情况。