标签: conditional-formatting

Conditional Styling in Pandas using other columns

I've searched and can't seem to find an answer on this anywhere, so hopefully it's possible. I have a dataframe, for simplicity I'll include an abbreviated version below. What I'd like to do is apply a custom formula for styling, or style one particular column based on the values in another column.

在此处输入图片说明

Using this as an example, I'd like to highlight the Current column's cells where the Diff > Historic Standard Dev in that row.

I've explored the style.apply approaches, …

python conditional-formatting styling pandas

6
推荐指数
1
解决办法
5372
查看次数

在 R 中使用 openxlsx 解决条件格式的 Tidyverse/更快的解决方案?

我正在处理类似于此表但更大的遗传数据:

ID allele.a allele.b
A      115       90
A      115       90
A      116       90
B      120       82
B      120       82
B      120      82M
Run Code Online (Sandbox Code Playgroud)

我的目标是针对每个 ID 突出显示哪些等位基因与每个 ID 组第一行列出的等位基因匹配。我需要将数据导出到格式良好的 excel 文件。

这是我想要的:

想要的结果

我可以使用以下脚本到达那里,但实际脚本涉及大约 67 个“ID”、1000 行数据和 37 列。运行大约需要 5 分钟,所以我希望找到一种可以显着减少处理时间的解决方案。也许来自 tidyverse 的“做”解决方案 - 不知道会是什么样子。

这是我的脚本,包括一个测试 data.frame。还包括一个更大的测试 data.frame 用于速度测试。

library(xlsx)
library(openxlsx)
library(tidyverse)

# Small data.frame
dframe <- data.frame(ID = c("A", "A", "A", "B", "B", "B"),
                     allele.a = c("115", "115", "116", "120", "120", "120"),
                     allele.b = c("90", "90", "90", "82", …
Run Code Online (Sandbox Code Playgroud)

excel r conditional-formatting tidyverse openxlsx

6
推荐指数
1
解决办法
934
查看次数

使用图标集和公式进行条件格式设置

基本上,我尝试使用条件格式图标集,即绿点、橙点和红点。

如果我的值小于我的公式值,则显示绿点。

如果我的值等于我的公式值,则显示橙色点。

如果我的值大于我的公式值,则显示红点。

这是我尝试使用的确切公式:

VLOOKUP(product_ID,product_db,3,FALSE)
Run Code Online (Sandbox Code Playgroud)

product_ID是我尝试应用条件格式的单元格旁边的单元格。product_db是另一个工作表中的一个大表。

虽然,当我尝试使用它时,格式根本没有应用于我的单元格。不显示任何点。

我相信这是因为我的公式。有任何想法吗?


编辑:

以下是正在发生的事情的一些屏幕截图:

这是调理前的数量:

这是条件反射,其公式为:=VLOOKUP(invoice_product,PRODUCT_DATABASE,3,FALSE)

在此输入图像描述

数量与第一张图像完全相同,没有变化。我的公式应返回的值为 2,因此应显示橙色点。

excel conditional-formatting vlookup excel-2011

5
推荐指数
1
解决办法
5万
查看次数

使用不同的条件格式规则更改单元格背景和前景色

为了视觉目的,我使用条件格式中的一些任意公式对工作表行的背景进行着色 \xe2\x80\x94 例如,用 进行条纹化=ISEVEN(ROW()),或基于特定列的文本内容 进行着色=$B1="Groceries"

\n

但现在我还希望列表中的某些单元格根据另一个不相关的公式具有自定义前景和文本颜色。例如,如果以 开头,则为红色;如果高于/低于零,则为红色/绿色;如果子字符串匹配则为蓝色,等等。+

\n

问题是,每条规则都尝试设置单元格的背景和前景色的格式,并且一条规则始终先于另一条规则。较低的规则使背景呈浅绿色,然后较高的规则使文本呈红色......即使我没有指示较高的规则影响背景(它是默认的白色),它仍然会覆盖较低的规则的背景。所以现在它是白色背景上的红色文本 \xe2\x80\x94 较低的规则完全被忽略。

\n

我可以手动创建每种可能组合的“排列”:例如,浅绿色背景和红色文本 if =AND($B1="Groceries",C1>0),浅绿色背景和绿色文本 if =AND($B1="Groceries",C1<0),浅蓝色背景和红色文本 if=AND($B1="Laundromat",C1>0)等等......但这得到不守规矩而且非常乏味,特别是如果我对前景背景都有很多可能性的话。

\n

有什么方法可以指示条件格式规则仅格式化背景或前景吗?

\n

conditional-formatting google-sheets

5
推荐指数
1
解决办法
1303
查看次数

SSRS 条件格式

我正在制作 SSRS 排名报告,其中排名 1 应具有绿色背景,最后排名应具有红色背景。

下面的例子:

SSRS 条件格式

我尝试使用自定义代码,但这对我不起作用,如下所示:

SSRS 表达式使用如下:

=Code.RankColour(me.value, 1, Fields!RankName.Value)
Run Code Online (Sandbox Code Playgroud)

RankColor代码如下:

Public Function RankColourTotals(ByVal Value As Decimal, ByVal MinValue As Decimal, ByVal MaxValue As Decimal) As String
    Dim strColor As String

    Select Case Value
        Case MaxValue
            strColor = "Salmon"
        Case MinValue
            strColor = "LightGreen"
        Case Else
            strColor = "Gainsboro"
    End Select
    Return strColor
End Function
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 SQL 2008 R2

sql-server conditional-formatting reporting-services ssrs-tablix ssrs-2008-r2

5
推荐指数
1
解决办法
6357
查看次数

Xlsxwriter - 执行条件格式后不显示 0

我有以下代码使用 Xlsxwriter 包进行条件格式化。我目前面临的唯一问题是,当单元格值为“0”(零)时,单元格会根据条件进行格式化,但不会出现数字。但是,当我单击单元格时,我可以在 Excel 公式栏中看到该值。任何人都可以建议我如何显示零值。

db_conn()
dwh_cur.execute("""select prod.name,count(sale.id),count(is_defect), count(sale.is_defect)/count(sale.id) as Percent
from sales group by prod.name""")
df = dwh_cur.fetchall()

workbook = xlsxwriter.Workbook('Report.xlsx')
worksheet1 = workbook.add_worksheet('Report')

number_format = workbook.add_format({'num_format': '#,###', 'font_size': 14})

#Conditional format - Dark Red color
bad = workbook.add_format({'bg_color': '#ff0000',
                                'font_size': 14,
                                'font_name' :'Calibri',
                                'font_color': '#000000'}) 

#Conditional format - Red color
notbad = workbook.add_format({'bg_color': '#dd5b5b',
                                'font_size': 14,
                                'font_name' :'Calibri',
                                'font_color': '#000000'})

#Conditional format - Green color
good = workbook.add_format({'bg_color': '#008000',
                                'font_size': 14,
                                'font_name' :'Calibri',
                                'font_color': '#000000'})

#Conditional format - …
Run Code Online (Sandbox Code Playgroud)

python conditional-formatting xlsxwriter

5
推荐指数
1
解决办法
965
查看次数

如何突出显示表格每一行中的最高值?

在 Google Sheets 中,我想突出显示表格每一行中的最大值。

我尝试使用条件格式,但到目前为止没有任何成功。

conditional-formatting max google-sheets conditional-statements google-sheets-formula

5
推荐指数
1
解决办法
4731
查看次数

R kable/kableExtra,按百分比条件格式化(带有缺失值)

我正在使用 kable 和 kableExtra 并希望显示一个包含百分比列的表格(格式为“95%”)。我还想根据百分比值(具有多种颜色和切点)对单元格背景进行条件格式设置。另外,还混杂了一些NA。

我已经尝试了这篇文章中的一些方法,但不喜欢 cell_spec 背景着色不会对整个单元格进行着色,因此更愿意在 kable 中使用 column_spec 。然而,我发现的所有显示百分比的选项都将百分比转换为字符变量,这限制了我执行条件格式的能力。

当我简化示例代码以发布到此处时(经过几个小时的错误),我终于使用 startWith 使其工作(在本例中这是一个不错的解决方案,因为我的切点位于 80% 和 90%,但对于所有情况)。

df <- tibble(
          x=c(1:6),
          percents =c (1, .95, .82, .77, .62, NA)
          )
    
df$percents <- percent(df$percents, accuracy = 1)

kable(df, booktabs=TRUE, escape=FALSE ) %>% 
   kable_styling() %>% 
  column_spec(2, background = if_else(startsWith(df$percents, '100'), "Darkgrey", 
                              if_else(startsWith(df$percents, '9'), "Darkgrey", 
                              if_else(startsWith(df$percents, '8'), "silver", "lightgray", 
                              "white"), "white"), "white"))
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有人有另一种解决方案来保留将百分比值作为数字而不是字符来使用的能力。

谢谢你!

r conditional-formatting percentage kableextra kable

5
推荐指数
1
解决办法
5098
查看次数

发散颜色DataBar(条件格式)-openpyxl pandas

如何使用pandas和在数字数据列上添加条件格式规则openpyxl,该规则将为负值和正值使用不同的颜色?最终,与在 Excel 中对列应用数据条规则时得到的结果完全相同。

预期输出

在此输入图像描述


我相当成功地将条件格式应用于仅包含正值的列,使用:

from openpyxl.formatting.rule import DataBar

rule_pos = DataBarRule(start_type="percentile",start_value=10, end_type="percentile",
        end_value="90", color="FF638EC6", showValue="None", minLength=None,maxLength=None)

wb["sheet_name"].conditional_formatting.add("K44:K48", rule_pos)
Run Code Online (Sandbox Code Playgroud)

成功返回:

在此输入图像描述


这可以通过利用、 和参数Excelwriter来实现。conditional_format'min_color': 'red''max_color':'green'

我尝试了几种不同的方法,例如分别对绿色/红色数据条应用否定和肯定规则,或者调整 的openpyxl条件格式的参数。我得到的结果是相同的颜色,但负值的条形较小。事实证明这比我预期的要棘手。

python conditional-formatting pandas openpyxl pandas.excelwriter

5
推荐指数
0
解决办法
686
查看次数

带条件的 groupby() - 计数/平均值

我有数据框:

test = pd.DataFrame({'Date': [2020 - 12 - 30, 2020 - 12 - 30, 2020 - 12 - 30, 2020 - 12 - 31, 2020 - 12 - 31, 2021 - 0o1 - 0o1, 2021 - 0o1 - 0o1], 'label': ['Positive', 'Positive', 'Negative', 'Negative','Negative', 'Positive', 'Positive'], 'score': [70, 80, 50, 50, 30, 90, 70]})
Run Code Online (Sandbox Code Playgroud)

输出:

   Date         label       score
2020-12-30      Positive    70
2020-12-30      Positive    80
2020-12-30      Negative    50
2020-12-31      Negative    50
2020-12-31      Negative    30
2021-01-01      Positive    90
2021-01-01      Positive    70
Run Code Online (Sandbox Code Playgroud)

我的目标是按日期分组并计算标签数。此外,分数应该仅计算当天较高的标签/分数的平均值。例如,如果当天的积极分数多于消极分数,则应计算没有消极分数的积极分数的平均值,反之亦然。 …

python group-by conditional-formatting pandas

5
推荐指数
1
解决办法
69
查看次数