我正在嘗試編寫一個函數,該函數比較兩個數據框列并在條件匹配時單獨突出顯示一列。例如如下:我在數據框中有兩列(“C1”、“C2”)。我想迭代并比較兩列中的每個值。如果 C1 > C2,則在 C1 中突出顯示該值。從下面,C1 中的(6 和 7)將突出顯示。我從不同的地方得到了下面的代碼,但如果我能得到更好的解決方案會很有幫助。df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})i = 0def color_red(val): global i if not i > len(df['C1'])-1: color = 'red' if df['C1'][i] > df['C2'][i] else 'black' i+=1 else: i = 0 color = 'red' if df['C1'][i] > df['C2'][i] else 'black' i+=1 return 'color: %s' % colors = df.style.applymap(color_red,subset=['C1'])s
1 回答

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
您可以使用apply()帶axis=1參數的方法來逐行應用您的樣式:
df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})
def color_red(s):
color = 'color: red' if s.iloc[0] > s.iloc[1] else 'color: black'
colors = [color] + [''] * (s.size - 1)
return colors
s = df.style.apply(color_red, axis=1)
添加回答
舉報
0/150
提交
取消