gpt4 book ai didi

python - Pandas 风格背景渐变未显示在 jupyter 笔记本中

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:43 24 4
gpt4 key购买 nike

我正在尝试打印带有背景渐变的 pandas 数据框,以提高可读性。我尝试应用我在 docs 中找到的内容到一个简单的用例,但我无法让 jupyter 笔记本实际打印带有颜色的表格 - 我不断获得纯数据帧。小例子:

import seaborn as sns
import pandas as pd


cm = sns.light_palette('green', as_cmap=True)
df_res = pd.DataFrame(index =['foo','bar'],columns = ['Value 1','Value 2','Value 3'])
df_res.loc['foo'] = [-.5*100, .3,.2]
df_res.loc['bar'] = [.3*100, .6,.9]
df_res.style.background_gradient(cmap=cm)

它只是打印

this simple dataframe .

我尝试了不同的打印技术,即

pretty = df_res.style.background_gradient(cmap=cm)
display(pretty)

print(pretty)

或不同的颜色图

df_res.style.background_gradient(cmap='viridis')

但它们都不起作用。我也尝试过样式器是否完全有效,但至少 applymap 函数执行了它应该执行的操作:

def color_negative_red(val):
"""
Takes a scalar and returns a string with
the css property `'color: red'` for negative
strings, black otherwise.
"""
color = 'red' if val < 0 else 'black'
return 'color: %s' % color
df_res.style.applymap(color_negative_red)

打印内容

所以不确定为什么background_gradient似乎没有任何效果。

编辑:刚刚找到原因。这是一个简单的修复,但如果其他人遇到同样的问题,我会继续这样做。显然,pandas 使用对象而不是 float 的元素初始化了数据框。如此简单地将初始化更改为

df_res = pd.DataFrame(index =['foo','bar'],columns = ['Value 1','Value 2','Value 3']).astype('float')

解决了问题。

最佳答案

您的数据框的数据类型是“对象”而不是数字。

首先,将数据框中的数据类型更改为数字。

df_res.apply(pd.to_numeric).style.background_gradient(cmap=cm)

输出: enter image description here

<小时/>

注意数据类型:

import seaborn as sns
import pandas as pd


cm = sns.light_palette('green', as_cmap=True)
df_res = pd.DataFrame(index =['foo','bar'],columns = ['Value 1','Value 2','Value 3'])
df_res.loc['foo'] = [-.5*100, .3,.2]
df_res.loc['bar'] = [.3*100, .6,.9]
df_res.info()

输出:

<class 'pandas.core.frame.DataFrame'>
Index: 2 entries, foo to bar
Data columns (total 3 columns):
Value 1 2 non-null object
Value 2 2 non-null object
Value 3 2 non-null object
dtypes: object(3)
memory usage: 144.0+ bytes

关于python - Pandas 风格背景渐变未显示在 jupyter 笔记本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com