Pandas 此条件的 DataFrame 样式
Pandas DataFrame Style for this condition
如何根据给定条件将 df.style 用于 DataFrame 的子集?
df = DataFrame({'A':[3,4,5],'B':[9,10,15],'C':[3,4,5]})
df
A B C
0 3 9 3
1 4 10 4
2 5 15 1
df1 = df.eq(df.iloc[:, 0], axis=0)
df1
A B C
0 True False True
1 True False True
2 True False True
我想突出显示为 False 的单元格。但是对 df 进行更改,而不仅仅是 df1
已编辑问题。它与前面的问题不同,因为它们只处理元素着色。但是我想根据以上条件上色。
您需要使用 style.Styler.apply
创建 DataFrame
个 background-color
:
def highlight(x):
c1 = 'background-color: red'
c2 = ''
m = x.eq(x.iloc[:, 0], axis=0)
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
#add color red by False values
df1 = df1.where(m, c1)
return df1
df.style.apply(highlight, axis=None)
如何根据给定条件将 df.style 用于 DataFrame 的子集?
df = DataFrame({'A':[3,4,5],'B':[9,10,15],'C':[3,4,5]})
df
A B C
0 3 9 3
1 4 10 4
2 5 15 1
df1 = df.eq(df.iloc[:, 0], axis=0)
df1
A B C
0 True False True
1 True False True
2 True False True
我想突出显示为 False 的单元格。但是对 df 进行更改,而不仅仅是 df1
已编辑问题。它与前面的问题不同,因为它们只处理元素着色。但是我想根据以上条件上色。
您需要使用 style.Styler.apply
创建 DataFrame
个 background-color
:
def highlight(x):
c1 = 'background-color: red'
c2 = ''
m = x.eq(x.iloc[:, 0], axis=0)
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
#add color red by False values
df1 = df1.where(m, c1)
return df1
df.style.apply(highlight, axis=None)