如何突出显示和格式化给定的列?
how to highlight and format a given column?
考虑下面的简单示例
df = pd.DataFrame({'text' : ['hello world'],
'var1' : [0.1],
'var2' : [0.2]})
#this highlights the highest number in red
def highlight_max(s, props = ''):
return np.where(s == np.nanmax(s.values), props, '')
#this turns the numbers into percentages
df.style.format({'var1' : '{:,.2%}'.format,
'var2' : '{:,.2%}'.format})
我正在尝试以红色自动突出显示最高数字(按行)并将任何数字格式化为百分比。我分别拥有这两部分,但我不知道如何在一个 .style
调用中做到这一点。有什么想法吗?
谢谢!
highlight_max
是一个内置函数,我们可以链式调用来生成样式化的 table,或者将样式器存储为变量并重用它以应用多种样式:
numeric_cols = ['var1', 'var2']
(
df.style.highlight_max(color='red', axis=1, subset=numeric_cols)
.format('{:,.2%}'.format, subset=numeric_cols)
)
或
numeric_cols = ['var1', 'var2']
styler = df.style
styler.highlight_max(color='red', axis=1, subset=numeric_cols)
styler.format('{:,.2%}'.format, subset=numeric_cols)
也可以通过在 axis=1
上使用 Styler.apply
并将 props
定义为所需的 CSS 样式来使用用户定义函数:
#this highlights the highest number in red
def highlight_max(s, props = ''):
return np.where(s == np.nanmax(s.values), props, '')
numeric_cols = ['var1', 'var2']
#this turns the numbers into percentages
(
df.style
.apply(highlight_max, props='background-color: red',
subset=numeric_cols, axis=1)
.format('{:,.2%}'.format, subset=numeric_cols)
)
所有选项都会生成样式化的 DataFrame:
如果需要,可以使用以下内容动态生成 numeric_cols
列列表:
numeric_cols = df.select_dtypes(include='number').columns
或:
numeric_cols = df.columns[(df.dtypes == 'int64') | (df.dtypes == 'float64')]
考虑下面的简单示例
df = pd.DataFrame({'text' : ['hello world'],
'var1' : [0.1],
'var2' : [0.2]})
#this highlights the highest number in red
def highlight_max(s, props = ''):
return np.where(s == np.nanmax(s.values), props, '')
#this turns the numbers into percentages
df.style.format({'var1' : '{:,.2%}'.format,
'var2' : '{:,.2%}'.format})
我正在尝试以红色自动突出显示最高数字(按行)并将任何数字格式化为百分比。我分别拥有这两部分,但我不知道如何在一个 .style
调用中做到这一点。有什么想法吗?
谢谢!
highlight_max
是一个内置函数,我们可以链式调用来生成样式化的 table,或者将样式器存储为变量并重用它以应用多种样式:
numeric_cols = ['var1', 'var2']
(
df.style.highlight_max(color='red', axis=1, subset=numeric_cols)
.format('{:,.2%}'.format, subset=numeric_cols)
)
或
numeric_cols = ['var1', 'var2']
styler = df.style
styler.highlight_max(color='red', axis=1, subset=numeric_cols)
styler.format('{:,.2%}'.format, subset=numeric_cols)
也可以通过在 axis=1
上使用 Styler.apply
并将 props
定义为所需的 CSS 样式来使用用户定义函数:
#this highlights the highest number in red
def highlight_max(s, props = ''):
return np.where(s == np.nanmax(s.values), props, '')
numeric_cols = ['var1', 'var2']
#this turns the numbers into percentages
(
df.style
.apply(highlight_max, props='background-color: red',
subset=numeric_cols, axis=1)
.format('{:,.2%}'.format, subset=numeric_cols)
)
所有选项都会生成样式化的 DataFrame:
如果需要,可以使用以下内容动态生成 numeric_cols
列列表:
numeric_cols = df.select_dtypes(include='number').columns
或:
numeric_cols = df.columns[(df.dtypes == 'int64') | (df.dtypes == 'float64')]