Pandas 中使用其他列的条件样式
Conditional Styling in Pandas using other columns
我已经搜索过,但似乎无法在任何地方找到这方面的答案,所以希望这是可能的。我有一个数据框,为简单起见,我将在下面包含一个缩写版本。我想做的是应用自定义公式来设置样式,或者根据另一列中的值设置特定列的样式。
以此为例,我想突出显示当前列的单元格,其中 Diff > Historic Standard Dev 在该行中。
我探索了 style.apply 方法,但似乎找不到有效的方法。任何帮助将不胜感激。
谢谢!
您可以通过 Styler.apply
创建 DataFrame
种样式:
def select_col(x):
c1 = 'background-color: red'
c2 = ''
#compare columns
mask = x['Diff'] > x['HistoricStandardDev']
#DataFrame with same index and columns names as original filled empty strings
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
#modify values of df1 column by boolean mask
df1.loc[mask, 'Current'] = c1
return df1
df.style.apply(select_col, axis=None)
我已经搜索过,但似乎无法在任何地方找到这方面的答案,所以希望这是可能的。我有一个数据框,为简单起见,我将在下面包含一个缩写版本。我想做的是应用自定义公式来设置样式,或者根据另一列中的值设置特定列的样式。
以此为例,我想突出显示当前列的单元格,其中 Diff > Historic Standard Dev 在该行中。
我探索了 style.apply 方法,但似乎找不到有效的方法。任何帮助将不胜感激。
谢谢!
您可以通过 Styler.apply
创建 DataFrame
种样式:
def select_col(x):
c1 = 'background-color: red'
c2 = ''
#compare columns
mask = x['Diff'] > x['HistoricStandardDev']
#DataFrame with same index and columns names as original filled empty strings
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
#modify values of df1 column by boolean mask
df1.loc[mask, 'Current'] = c1
return df1
df.style.apply(select_col, axis=None)