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 属性来避免这种情况。