【发布时间】:2021-09-24 01:51:17
【问题描述】:
我正在尝试突出显示具有不同条件的每一列的特定单元格,它们的值与每一行的条件匹配。
下图是我想要实现的: The table I attempt to achieve
我搜索了 google 和 stackoverflow,但这些都不能满足我的要求。任何熟悉 Pandas Style 的人都可以提供帮助吗?
以下是我尝试过但失败的代码:
Ex1
import pandas as pd
df = pd.DataFrame([[10,3,1], [3,7,2], [2,4,4]], columns=list("ABC"))
def highlight(s):
return ['background-color: yellow' if (v>2) else 'background-color: white' for v in s]
df.style.apply(highlight, axis=0)
Ex2
import pandas as pd
df = pd.DataFrame([[10,3,1], [3,7,2], [2,4,4]], columns=list("ABC"))
Column_limit = (df['A'] > 6) | (df['B'] > 2) | (df['C'] < 3)
df[Column_limit].style.applymap(lambda x: 'background-color: yellow', subset=pd.IndexSlice[:, ['A', 'C']])
Ex3
import pandas as pd
df = pd.DataFrame([[10,3,1], [3,7,2], [2,4,4]], columns=list("ABC"))
subsets = pd.IndexSlice[:, 'A']
df.style.applymap(lambda x: 'background-color: yellow', subset = subsets)
【问题讨论】:
-
只有3列?
-
在我的真实案例中,有很多列。我刚刚在这里发布了一个简化的示例。您的第二个答案也符合我的要求。欣赏!
标签: python pandas dataframe styles highlight