在 IPython 函数内部使用自定义样式显示 pandas 数据框
Display pandas dataframe using custom style inside function in IPython
在 jupyter notebook 中,我有一个函数可以为 tensorflow 模型准备输入特征和目标矩阵。
在这个函数中,我想显示一个带有背景梯度的相关矩阵,以便更好地查看强相关特征。
答案显示了如何按照我想要的方式去做。问题是我无法从函数内部获得任何输出,即:
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
)而不返回它?
编辑:在我的真实函数中,我还显示其他内容(如数据描述),我想在精确位置显示相关矩阵。此外,我的函数 returns 许多数据帧,因此按照@brentertainer 的建议返回矩阵不会直接显示矩阵。
你基本上都有了。两个变化:
- 获取基于
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()
在 jupyter notebook 中,我有一个函数可以为 tensorflow 模型准备输入特征和目标矩阵。
在这个函数中,我想显示一个带有背景梯度的相关矩阵,以便更好地查看强相关特征。
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
)而不返回它?
编辑:在我的真实函数中,我还显示其他内容(如数据描述),我想在精确位置显示相关矩阵。此外,我的函数 returns 许多数据帧,因此按照@brentertainer 的建议返回矩阵不会直接显示矩阵。
你基本上都有了。两个变化:
- 获取基于
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()