如何为表中的选定行反转cmap

2024-10-04 01:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试设置从csv文件中的数据创建的表中的行的样式。我正在使用Jupyter笔记本运行我的python代码。我的csv文件中的数据如下所示:

[[' ', 'VZ', 'T', 'TMUS'],
['Current Ratio', 1.4, .8, 1.1],
['Quick Ratio', 1.3, .8, 1.0],
['Debt to Equity', 1.9, .97, 1.17],
['LT Debt to Equity', 1.82, .95, 1.09],
['ROA', 6.1, 2.0, 1.8],
['ROI', 10.9, 1.7, 4.1],
['Gross Margin', 59.5, 52.7, 59.6],
['Oper. Margin', 19.1, 13.0, 9.7],
['Profit Margin', 14.1, 6.3, 4.5]]

csv file

csv保存到我的桌面上,我正在使用pandas read_csv读取它:

import pandas as pd

data = pd.read_csv('/Users/broderickbonelli/Desktop/test.csv', index_col=" ")

我的目标是使用“RdYlGn”颜色映射对表进行正确的颜色编码。我正在使用.style.background\u gradient()

data = data.style.background_gradient(axis=1, cmap='RdYlGn')

display(data)

这会将颜色贴图应用于整个表。我遇到的问题是,不同的行(债转股行)需要一个反转的颜色映射,同时保持表的其余部分不变

现在,我只需要反转“债转股”和“债转股”行的颜色贴图,因为高值应该是红色,低值应该是绿色。我能够将行定位为子集,并应用反向cmap'RdYlGn_r',但现在渐变没有正确应用,因为所有列都是相同的颜色

我尝试的代码是:

data = data.style.background_gradient(axis=1, cmap='RdYlGn').set_precision(2).background_gradient(cmap='RdYlGn_r',  subset=(data.index[2], data.columns)).background_gradient(cmap='RdYlGn_r', subset=(data.index[3], data.columns))

display(data)

Table

我不确定为什么梯度不能正确地应用于债务-股权行,但当我应用于整个表时,它是正确的。任何帮助都将不胜感激


Tags: 文件csv数据代码margindataindexstyle
1条回答
网友
1楼 · 发布于 2024-10-04 01:24:33

最好是从matplotlib导入颜色贴图对象并使用反转方法,然后将反转的颜色贴图提供给cmap参数:

https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.Colormap.html#matplotlib.colors.Colormap

在pandas 1.3.0(即将发布的版本)中,有一个新的关键字参数gmap,它允许您为渐变贴图提供自己的值,在这种情况下,如果您提供了:df.style.background_gradient(cmap="RdYlGn", gmap=-df),将应用快速反转

相关问题 更多 >