小编EGI*_*EGI的帖子

Pandas 数据框样式:根据格式列突出显示一些单元格

问题描述

我有一个 DataFrame,其中最后一列是格式列。此列的目的是包含 DataFrame 行的格式。这是此类数据框的示例:

df = pd.DataFrame({'ID': [1, 24, 31, 37],
                   'Status': ['to analyze', 'to analyze','to analyze','analyzed'],
                   'priority' : ['P1','P1','P2','P1'],
                   'format' : ['n;y;n','n;n;n','n;y;y','y;n;y']}
Run Code Online (Sandbox Code Playgroud)

每个 df['format'] 行都包含一个字符串,旨在作为列表(拆分时)给出行的格式。

符号含义:

  • n 表示“没有亮点”
  • y 表示“以黄色突出显示”

df['format'].to_list()[0] = 'n;y;n' 表示例如:

  • n:未突出显示第一列 ID 项“1”
  • y:要突出显示的第二列状态项“要分析”
  • n:第三列优先项“P1”未突出显示

所以预期的结果是:

预期结果

我试过的

我尝试使用 df.format 来获取包含所需格式的列表列表。这是我的代码:

import pandas as pd
import numpy as np

def highlight_case(df):
    list_of_format_lists = []
    for format_line in df['format']:
        format_line_list = format_line.split(';')
        format_list = []
        for form in format_line_list:
            if 'y' in form:
                format_list.append('background-color: yellow')
            else: …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

合法 .xlsx 文件上的 openpyxl load_workbook() 会导致 zipfile.BadZipFile 错误

我想做的是将数据帧数据附加到现有的合法 Excel 文件中。我使用了 openpyxl 中的 load_workbook() 函数,但它系统地返回错误。这是一些在我的机器上崩溃的代码:

from openpyxl import load_workbook

report_path = root_folder + '\\log_report.xlsx'
writer = pd.ExcelWriter(report_path, engine='openpyxl')
writer.book = load_workbook(report_path)
writer.close()
Run Code Online (Sandbox Code Playgroud)

这里,log_report.xlsx已经存在并且是通过pandas .to_excel()创建的。在使用 openpyxl load_workbook() 打开之前,可以打开它、编辑它并执行 MS Excel 允许的任何操作。我收到以下错误返回:

Traceback (most recent call last):
  File "D:/failsafe_counter/main.py", line 419, in <module>
    writer.book = load_workbook(report_path)
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook
    reader = ExcelReader(filename, read_only, keep_vba,
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "D:\failsafe_counter\venv\lib\site-packages\openpyxl\reader\excel.py", line 96, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "C:\Users\XXXX\AppData\Local\Programs\Python\Python38-32\lib\zipfile.py", line 1269, …
Run Code Online (Sandbox Code Playgroud)

python excel openpyxl

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

标签 统计

python ×2

dataframe ×1

excel ×1

openpyxl ×1

pandas ×1