按索引突出显示(颜色)熊猫数据框行

ila*_*ral 7 python conditional-formatting dataframe pandas

我有两个数据框 df1:

d1 = {"col1" : ['A', 'B', 'C'],
      "Col2": ["home", "car","banana" ]}

d2 = {"col1" : ['D', 'F','C'],
      "Col2": ["garden", "boat","banana" ]}

df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)

new_df = pd.merge(df1, df2,  on ='col1', how='outer')
new_df
Run Code Online (Sandbox Code Playgroud)

所以我想要做的是突出显示在两个数据框中找到的第三行“香蕉”。我正在使用样式文档来找到解决方案,但没有运气。我只能突出显示一行,但是当我有多行时它不起作用。请伸出援助之手

rpa*_*nai 7

如果您想突出显示两行(比如索引 2 和 4),它几乎是这个答案的重复

new_df.style.apply(lambda x: ['background: lightgreen' if x.name in [2,4] 
                              else '' for i in x], 
                   axis=1)
Run Code Online (Sandbox Code Playgroud)

相反,如果您希望突出显示列表中包含给定名称的每一行(即lst = ['car', 'boat']),您可以使用

new_df.style.apply(lambda x: ['background: lightgreen' if (set(lst).intersection(x.values)) 
                              else '' for i in x], 
                   axis=1)
Run Code Online (Sandbox Code Playgroud)