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

Python 如何为表中的选定行反转cmap,python,pandas,dataframe,csv,jupyter-notebook,Python,Pandas,Dataframe,Csv,Jupyter Notebook,我正在尝试设置从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.

我正在尝试设置从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保存到我的桌面上,我正在使用pandas read_csv读取它:

import pandas as pd

data = pd.read_csv('/Users/broderickbonelli/Desktop/test.csv', index_col=" ")
我的目标是使用“RdYlGn”颜色映射对表进行正确的颜色编码。我正在使用.style.background\u gradient()

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

现在,我只需要反转“债转股”和“债转股”行的颜色贴图,因为高值应该是红色,低值应该是绿色。我能够将行定位为子集,并应用反向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)


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

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


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

非常感谢!是的,反向方法_r是我用于索引[2]和索引[3]的方法,但是它没有正确地应用梯度,正如我使用:background_gradient(axis=1,cmap='RdYlGn')应用于所有行时所做的那样
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)