使用来自另一个数据框的值将熊猫条样式应用于数据框

我有 df1 和 df2。我想使用 df2 中的值在 df1 的单元格中显示条形图。我能够使用下面的代码应用其他形式的样式,但是对于条形图你不能使用这种方法。


def color_cells(s):

    if s > 90:

        return 'color:{0}; font-weight:bold'.format('green')

    elif s>80:

        return 'background-color: light yellow;color:{0}; font-weight:regular'.format('dark yellow')

    else:

        return 'color:{0}; font-weight:bold'.format('red')


df1.style.apply(lambda x: df2.applymap(color_cells), axis=None)

我在 df2 中获取条形码的代码是


df2.style.bar(color=['#d65f5f', '#5fba7d'])

如何将以上代码应用于 df1?索引和列名相同。


添加示例数据框:


df1=pd.DataFrame(np.random.rand(15, 10))

df2=pd.DataFrame(np.random.rand(15, 10)*100)


FFIVE
浏览 85回答 1
1回答

慕侠2389804

这是执行此操作的代码:df1=pd.DataFrame(np.random.rand(15, 10))df2=pd.DataFrame(np.random.rand(15, 10)*100)pct = (df2 - df2.min()) / (df2.max() - df2.min() )*100def make_bar_style(x):    return f"background: linear-gradient(90deg,#5fba7d {x}%, transparent {x}%); width: 10em"    pct.applymap(make_bar_style).shapedf1.style.apply(lambda x: pct.applymap(make_bar_style), axis=None)结果是:为了证明条形尺寸由 df2 驱动这一事实,请考虑以下内容:df2 = pd.DataFrame(np.mgrid[0:15, 0:10][0])结果是:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python