试图使用Python选择具有红色和绿色背景的excel单元格

问题描述 投票:0回答:1

我有一个文件,具有绿色突出显示的单元格和红色突出显示的单元格,表示严重性级别。

现在,我正在使用StyleFrame提取它们,但由于某些原因,我可以提取红色单元格,但不能提取绿色单元格。关于如何解决这个问题的任何想法?

注意,我确保代码中指定的颜色与文件相同。

from StyleFrame import StyleFrame, utils


GeneralCategories = StyleFrame.read_excel('Categories.xlsx', read_style=True, use_openpyxl_styles=False)

def redBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan


def greenBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.green, '00FF00'} else np.nan


SevereCategory = StyleFrame(GeneralCategories.applymap(redBackground).dropna(axis=(0, 1), how='all'))


NonSevereCategory = StyleFrame(GeneralCategories.applymap(greenBackground).dropna(axis=(0, 1), how='all'))  

结果:

print(SevereCategory)

                                    Keyword Categories
1               Adult Content: Nudity & Partial Nudity
2    Adult Content: Nudity & Partial Nudity;Adult C...
3    Adult Content: Nudity & Partial Nudity;Adult C...
4    Adult Content: Nudity & Partial Nudity;Adult C...
5    Adult Content: Nudity & Partial Nudity;Adult C...
..                                                 ...



print(NonSevereCategory)

Empty DataFrame
Columns: []
Index: []
python excel pandas xlrd styleframe
1个回答
0
投票

感谢@OsmosisJonesLoL,我在通常的6位绿色十六进制代码之前添加了“ FF”,它可以正常工作!

最终代码:

GeneralCategories = StyleFrame.read_excel('Keyword Category Breakout 12.5.19.xlsx', read_style=True, use_openpyxl_styles=False)

def redBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.red, 'FFFF0000'} else np.nan

def greenBackground(cell):
    return cell if cell.style.bg_color in {utils.colors.green, 'FF00FF00', 'green'} else np.nan


SevereCategory = StyleFrame(GeneralCategories.applymap(redBackground).dropna(axis=(0, 1), how='all'))

NonSevereCategory = StyleFrame(GeneralCategories.applymap(greenBackground).dropna(axis=(0, 1), how='all'))
© www.soinside.com 2019 - 2024. All rights reserved.