在 IPython 中使用自定义样式在函数内部显示熊猫数据框

Posted

技术标签:

【中文标题】在 IPython 中使用自定义样式在函数内部显示熊猫数据框【英文标题】:Display pandas dataframe using custom style inside function in IPython 【发布时间】:2019-12-01 15:02:54 【问题描述】:

在一个 jupyter 笔记本中,我有一个函数可以为 tensorflow 模型准备输入特征和目标矩阵。

在这个函数中,我想显示一个带有背景渐变的相关矩阵,以更好地查看强相关特征。

This 答案显示了如何完全按照我的意愿去做。问题是从函数内部我无法获得任何输出,即:

def display_corr_matrix_custom():
    rs = np.random.RandomState(0)
    df = pd.DataFrame(rs.rand(10, 10))
    corr = df.corr()
    corr.style.background_gradient(cmap='coolwarm')

display_corr_matrix_custom()

显然没有显示任何内容。通常,我使用 IPython 的 display.display() 函数。但是,在这种情况下,我不能使用它,因为我想保留我的自定义背景。

有没有另一种方法来显示这个矩阵(如果可能,不带matplotlib)而不返回它?


编辑:在我的真实函数中,我还显示其他内容(作为数据描述),我想在精确位置显示相关矩阵。此外,我的函数返回许多数据帧,因此返回 @brentertainer 建议的矩阵不会直接显示矩阵。

【问题讨论】:

【参考方案1】:

你大多拥有它。两个变化:

corr 获取 Styler 对象。 使用IPython的display.display()在函数中显示styler
def display_corr_matrix_custom():
    rs = np.random.RandomState(0)
    df = pd.DataFrame(rs.rand(10, 10))
    corr = df.corr()  # corr is a DataFrame
    styler = corr.style.background_gradient(cmap='coolwarm')  # styler is a Styler
    display(styler)  # using Jupyter's display() function

display_corr_matrix_custom()

【讨论】:

感谢您的回答!实际上,我正在寻找与退货不同的解决方案(如果可能的话)。我已经用更多细节编辑了我的问题。 @David 您是否尝试过从函数内部显示样式器?尝试这样做而不是退回样式器。我看到你已经从你发布的链接中复制了代码。该代码不会像您期望的那样工作,因为它是作为脚本运行的,而不是在函数的范围内。 哦,我的错!我肯定不得不更多地考虑我在做什么。我假设样式在 df 中以某种方式被修改,但显然 pandas df 没有嵌入样式(因此,`display.display(corr) 没有显示我想要的内容)。显示样式器确实有效!谢谢! @David 太棒了!我已经修改了我的回复。

以上是关于在 IPython 中使用自定义样式在函数内部显示熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

在antd vue的表格显示中,合并多个字段到一列及自定义显示样式

下拉列表框Spinner-采用自定义布局文件作为Spinner样式

如何更改 IPython(Jupyter) 中代码的突出显示颜色样式?

Android 启动页 显示自定义 LOGO

需要内部层输出作为标签的自定义损失函数的 Keras 实现

如何允许自定义类参数在 ipython 中制表符完成?