亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據兩種不同的條件突出顯示熊貓數據框列

根據兩種不同的條件突出顯示熊貓數據框列

元芳怎么了 2022-12-20 11:22:06
我有以下數據框comp:    time        first_max   name             second_max name.1      Perceived OoM.1 Perceived OoM.20   0.000000    18          shoulder_center  9          right_hip   shoulder_center shoulder_center1   0.010000    18          shoulder_center  9          right_hip   shoulder_center shoulder_center2   0.020000    18          right_hip        9          right_hip   shoulder_center right_hip3   0.030000    18          shoulder_center  9          right_hip   shoulder_center right_hip我有這個功能,可以根據是否突出顯示整行name == Perceived OoM.1:def highlight_col(x):    df = x.copy()    mask = df['name'] == df['Perceived OoM.1']    df.loc[mask, :] = 'background-color: yellow'    df.loc[~mask,:] = 'background-color: ""'    return dfcomp.style.apply(highlight_col, axis=None)但是,我想找出一種方法來為整行著色另一種顏色 if name == Perceived OoM.2。基本上,我希望該行為黃色 ifname == Perceived OoM.1否則該行為藍色 if name == Perceived OoM.2。但我似乎無法將該條件應用到我的函數中。有什么幫助嗎?
查看完整描述

2 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

創建另一個掩碼并以相同的方式傳遞,同樣對于默認空值使用DataFrame構造函數:


def highlight_col(x):

    df = pd.DataFrame('', index=x.index, columns=x.columns)

    mask1 = x['name'] == x['Perceived OoM.1']

    mask2 = x['name'] == x['Perceived OoM.2']

    df.loc[mask1, :] = 'background-color: yellow'

    df.loc[mask2, :] = 'background-color: blue'

    return df


查看完整回答
反對 回復 2022-12-20
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

另一種方法是定義一個函數,這樣你就可以在行上應用:


def highlight(x):

    color = 'background-color:yellow' if  x['name']==x['Perceived OoM.1']\

            else 'background-color: green' if x['name']==x['Perceived OoM.2']\

            else ''

    return [color]*len(x)


df.style.apply(highlight, axis=1)

輸出:

http://img1.sycdn.imooc.com//63a12a8400011a8906100110.jpg

查看完整回答
反對 回復 2022-12-20
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號