当前位置: 首页 > 知识库问答 >
问题:

在“样式应用”功能中删除行

毛勇
2023-03-14

我使用style.apply函数在打印Excel之前突出显示数据框的一些单元格,并希望删除没有突出显示任何单元格的行。

import pandas as pd
import numpy as np

def highlight_difference(x):
    m1 = x['Value_L'] != x['Lim_Low']
    m2 = x['Value_H'] != x['Lim_High']

    df1 = pd.DataFrame('', index=x.index, columns=x.columns)
    df1['Value_L'] = np.where(m1, 'background-color: #E55451', df1['Value_L'])
    df1['Value_H'] = np.where(m2, 'background-color: #E55451', df1['Value_H'])

    drop_mask = m1 | m2
    df1 = df1[drop_mask]

    return df1

df.style.apply(highlight_difference, axis=None).to_excel('Result.xlsx')

这将导致以下错误:

ValueError:的结果

解决这个问题的合理方法是什么?是否有任何方法可以在apply函数中删除行?

共有1个答案

冯嘉珍
2023-03-14

您需要删除之前的值:

m1 = df['Value_L'] != df['Lim_Low']
m2 = df['Value_H'] != df['Lim_High']
drop_mask = m1 | m2

df[drop_mask].style.apply(highlight_difference, axis=None).to_excel('Result.xlsx')

也可能通过这个技巧传递样式的DataFrame:

df = pd.DataFrame({'Value_L':[1,2,3],
                   'Lim_Low':[1,2,3],
                   'Value_H':[1,2,2],
                   'Lim_High':[0,2,3]})


m1 = df['Value_L'] != df['Lim_Low']
m2 = df['Value_H'] != df['Lim_High']
drop_mask = m1 | m2

df11 = df[drop_mask] 
df1 = pd.DataFrame('', index=df11.index, columns=df11.columns)
df1['Value_L'] = np.where(m1[drop_mask], 'background-color: #E55451', '')
df1['Value_H'] = np.where(m2[drop_mask], 'background-color: #E55451', '')
print (df1)

df11.style.apply(lambda x: df1, axis=None).to_excel('Result.xlsx')
 类似资料:
  • 问题内容: 我有一个带有mysql数据的表,我添加了一个垃圾桶按钮,我想用ajax函数单击垃圾桶按钮时删除每一行,这是我的html: 和我的ajax功能在这里: 还有我的“ delete.php”页面: 我认为我的问题是ajax函数;谢谢 问题答案: 试试这个 并且也改变 至

  • 主要内容:Java14弃用的功能,Java14中被移除的功能Java14弃用的功能 Solaris 和 SPARC 端口 (JEP 362) - 因为该 Unix 操作系统和 RISC 处理器自过去几年以来并未积极开发。 ParallelScavenge + SerialOld GC 组合 (JEP 366) - 因为这是一种很少使用的 GC 算法组合,并且需要大量的维护工作 Java14中被移除的功能 Concurrent Mark Sweep (CMS

  • 主要内容:Java16弃用的功能,Java16移除的功能Java16弃用的功能 ThreadGroup 方法,如 stop、destroy、isDestroyed、setDaemon 和 isDaemon 方法已被弃用,并将在未来版本中删除。这些销毁线程组的 API/机制存在缺陷,这种支持显式或自动销毁线程组的方法已被最终弃用。 诸如 sigset、signal 之类的信号链 API 已过时,不推荐使用它们。sigaction 是跨平台的,并且支持多线

  • 主要内容:Java15弃用的功能,Java15移除的功能Java15弃用的功能 以下功能已弃用,并计划在未来版本中删除。 偏置锁定 : 默认情况下禁用偏置锁定,不推荐使用所有相关的命令行选项。JDK 社区正在寻找需要检查难以维护的偏向锁定的遗留同步机制。HotSpot 虚拟机中使用了偏置锁定来减少无竞争锁定的开销。 RMI 激活 :RMI 激活是自 Java 8 以来的可选部分,并且是 RMI 的过时部分。它正在强加持续的维护成本。 Java15移除的

  • 我试图将theses样式添加到cherry.jrxml代码中:

  • 问题内容: 我选择jQuery Mobile而不是其他框架来获得动画效果和动态页面支持。 但是,我在样式方面遇到麻烦。我想保留基本的页面样式以便执行页面转换。但是我还需要完全自定义标题,列表视图,按钮,搜索框的外观……仅处理颜色是不够的。我需要处理尺寸,位置,边距,填充等。 因此,为了用CSS覆盖它们,我在jQuery Mobile中添加了额外的div和类而感到困惑。但这非常耗时,从头重写CSS会