- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果颜色基于前一行,我会花时间解决表格行着色问题。
在四点系统中存在以下逻辑。如果 0 或 1 分,则行颜色应为红色,如果 3 或 4 分,则行颜色应为绿色,如果 2 分,则颜色应与之前的行相同。
我无法确定数据框中前一行的颜色。我用“临时”列解决了这个问题。不幸的是,该列显示在 HTML 表格中。
def should_colored(sum_of_points):
if sum_of_points > 2:
return True
elif sum_of_points < 2:
return False
else:
return np.NaN
def determine_coloring_for_row(results):
tmp = pd.DataFrame(results.values, columns=['color_result'])
tmp['color_result'] = tmp['color_result'].apply(lambda i : should_colored(i))
tmp['color_result'].fillna(method='ffill', inplace=True)
return tmp['color_result'].values
def color_row(row, number_of_columns):
color = 'green' if row['color_result'] else 'red'
return ['background-color: %s' % color] * number_of_columns
df['color_result'] = determine_coloring_for_row(df['sum_of_points'])
df.style.apply(color_row, number_of_columns = len(df.columns), axis=1)
有人知道如何通过使用 style.apply 或隐藏元数据列来解决这个问题吗?
最佳答案
我认为新列是不必要的,仅需要原始DataFrame
列和索引并按条件设置行的DataFrame of styles
mask
:
def highlight(x):
c1 = 'background-color: green'
c2 = 'background-color: red'
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
df1 = df1.mask(df['sum_of_points'].map(should_colored).ffill(), c1)
#print (df1)
return df1
df.style.apply(highlight, axis=None)
示例:
df = pd.DataFrame({'sum_of_points':[0,1,2,1,2,3,4,1,2,2,4,5,0,1,2],
'A':range(15)})
print (df)
A sum_of_points
0 0 0
1 1 1
2 2 2
3 3 1
4 4 2
5 5 3
6 6 4
7 7 1
8 8 2
9 9 2
10 10 4
11 11 5
12 12 0
13 13 1
14 14 2
<小时/>
def should_colored(sum_of_points):
if sum_of_points > 2:
return True
elif sum_of_points < 2:
return False
else:
return np.NaN
def highlight(x):
c1 = 'background-color: green'
c2 = 'background-color: red'
df1 = pd.DataFrame(c2, index=x.index, columns=x.columns)
df1 = df1.mask(x['sum_of_points'].map(should_colored).ffill(), c1)
return df1
df.style.apply(highlight, axis=None)
关于python - 使用 pandas dataframe styler 正确的行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50289165/
我正在使用以下方法为数据框中的单元格着色: import seaborn as sns cm1 = sns.diverging_palette(h_pos=130, h_neg=10, s=99, l
这可能是一个非常愚蠢的问题,但我似乎看不到 Pandas Styler 的输出。我使用了另一个用户之前发布的以下简单示例。 df = pd.DataFrame([[3,2,10,4],[20,1,3,
我刚找到 Xaml Styler我想试一试。任何人都可以分享一些使用此工具的经验吗?值得一试吗?在大型团队中使用它有什么缺点吗? 谢谢! 最佳答案 我每天都在使用它,它非常棒。这绝对值得一试,而且我没
如果我想在“c”语言的 Styler 配置中添加新关键字,并且我有我自定义的数据类型。例如: uint_8 a; uint_16 b; uint_32 c; uint_12bla bla;* 是否可以
我可以像这样访问列的子集: df[[5, 6]] ..但在以下行之后将文本向左推送并使其更具可读性: df = df.style.set_properties(**{'text-align': 'le
我找不到正确的术语来搜索和阅读有关脚本的信息,这些脚本用于允许用户在评论或写博客时添加一些 html 标签功能。例如,我们可以在 StackOverflow 上评论时使用 B、I、超链接、列表等功能
我被要求创建一个具有以下功能的文本编辑器: 从其他来源导入文本 对文本应用样式 样式是预定义的(例如样式“Level 1”可能会使文本变为粗体、绿色和斜体。 一种样式效果是在选择前后添加字符,例如,文
这是一个带有背景渐变的样式器对象: 无论如何,我只是想按原样保存它。已尝试使用 .render() 但不确定如何处理该 HTML 代码,并且通过阅读有关该主题的其他问题,目前似乎没有保存这些代码的方法
我正在尝试使用 pandas Styler 功能将带有彩色单元格的 pandas 数据框输出到控制台。当我在运行 python 2.7 的 Spyder 3.2.6 中运行代码示例时,控制台没有按预期
我正在使用 pandas Styler 类将某些列格式化为百分比。当我将输出写入 excel 时,列仍显示为 float 。为什么我可以正确地格式化和保存颜色,但不能正确保存百分比? import p
不确定是否可以利用 matplotlib 的 DivergingNorm for color maps在 pandas Styler 对象的框架下。举个例子: import pandas as pd
如果颜色基于前一行,我会花时间解决表格行着色问题。 在四点系统中存在以下逻辑。如果 0 或 1 分,则行颜色应为红色,如果 3 或 4 分,则行颜色应为绿色,如果 2 分,则颜色应与之前的行相同。 我
设置: 我在 Ubuntu (18.04.6) 上使用 Rstudio (2021.09.1.372, Ghost Orchid)。 我正在尝试使用 {styler} package在其中(1.6.2
我正在使用 jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True Scorecard.ipynb 将我的笔记本导出为 pdf
当我有一个不使用 Styler 显示的数据框时,DatetimeIndex 按我想要的方式显示: In [1]: df 但是,当我尝试为数据帧显示应用样式时,DatetimeIndex 会转换为我不喜
我正在使用 Pandas DataFrames 的样式属性来创建用于电子邮件发送的 HTML 表格。 我遇到的问题是,当我希望它显示为日期时,我有一个显示为日期时间戳的日期时间索引。我对时间部分不感兴
我正在处理一个非常大的数据集(18000 行数据),我只想显示几行,例如前 5 行或 10 行。我试图使用 pandas.DataFrame().head(10) 方法,但我正在做一些样式和格式设置,
pandas.io.formats.style.Styler.format 的公共(public)文档说 subset : IndexSlice An argument to DataFrame.lo
我有以下代码生成一个 pandas.io.formats.style.Styler 对象: import pandas as pd import numpy as np df = pd.DataFra
我需要一个多合一的 jQuery 输入类型样式器,它可以美化选择框、单选按钮、复选框、文本框、文本区域、多选、文件输入等。我正在大力搜索,但我得到的一切都不适合这种情况。 有的好用但是验证引擎不支持,
我是一名优秀的程序员,十分优秀!