<p>看来你可以这样做:</p>
<p><strong>编辑:</strong></p>
<pre><code>import pandas as pd, numpy as np
data=pd.DataFrame(({'Cd': [0.001,0.0005,1],'Cu':[0.004, 0.0017, 0.1], 'SO4': [700,450,1500],'Zn': [0.15,0.1,0.25],}))
guidelines = {'WHO' : {'Cd' :0.002 ,'Cu' :0.003 ,'SO4':np.NaN,'Zn' :0.1},
'ANZECC' : {'Cd' :0.001 ,'Cu' :0.002 ,'SO4':1000.0,'Zn' :0.2},
'US_EPA' : {'Cd' :0.001 ,'Cu' :0.0015 ,'SO4':500.0,'Zn' :0.01}
}
guidelines = pd.DataFrame(guidelines).T
fill_color = {'WHO':'teal','ANZECC': 'red','US_EPA' :'yellow'}
def highlight(x):
if x.name in guidelines.columns:
style = []
guide = guidelines[x.name]
for i in x:
condition = (guide<=i)
_guide = guide[condition]
try:
match = _guide.index[np.argmax(np.array(_guide))]
color = fill_color[match]
style += [f"background-color: {color}"]
except:
style += ['']
return style
else:
return ['']*len(x)
data.style.apply(highlight)
</code></pre>
<p>看起来是这样的(您可以继续添加进一步的格式/更改颜色等):
<a href="https://i.stack.imgur.com/ScMQu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ScMQu.png" alt="pandas styling"/></a></p>