2 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超3個贊
您可以編寫普通的 for 循環(huán)而不是列表理解。
def highlight_number(row):
arr = []
for cell in row:
if cell <= 0:
arr.append('background-color: red; color: white')
elif cell >= 100:
arr.append('background-color: blue; color: white')
else:
arr.append('background-color: white; color: black')
return arr
df.style.apply(highlight_number)
輸出:

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊
我覺得最簡單的方法是使用np.select
它接受條件列表和選擇列表(就像 if elif 并且也像 else 一樣接受默認(rèn)值)并修改你的函數(shù)并使用它,axis=None
因為我們正在應(yīng)用于整個數(shù)據(jù)幀(注意你也可用于subset
列的子集)
def highlight_number(dataframe):
? ??
? ? conditions = [dataframe <=0,(dataframe>0) & (dataframe>=100)] #your conditions
? ? choices = ['background-color: red; color: white',
? ? ? ? ? ? ? ?'background-color: blue; color: white']
? ? arr = np.select(conditions,choices,'background-color: white; color: black')
? ? return pd.DataFrame(arr,index=dataframe.index,columns=dataframe.columns)
df.style.apply(highlight_number,axis=None)
添加回答
舉報