SenseNova-Skills 实战:基于 pandas + openpyxl 的多 Sheet 条件筛选与整行标红格式化导出
AI 技能人工智能深度研究数据分析媒体生成【免费下载链接】SenseNova-SkillsModular SenseNova skills for building AI-powered office assistants and productivity workflows项目地址https://gitcode.com/gh_mirrors/se/SenseNova-Skills点击查看免费下载本指南围绕 formatted-export 子技能 展开讲解如何在多 Sheet Excel 文件中通过模糊匹配定位目标列筛出含空值与无效字符的记录合并溯源后导出为整行标红的格式化 Excel并生成下载链接。读完本文你将掌握多 Sheet 扫描 → 动态列定位 → 数据清洗筛选 → openpyxl 样式导出这条完整链路并能将其安全接入 SenseNova-Skills 的 Excel 数据分析工作流中处理 10k 行以下的小中型文件。技能定位Excel 工作流中的格式化导出环节在 sn-da-excel-workflow 父级工作流 中Excel 分析被编排为六个步骤跨 Sheet 行数统计 → 大文件阈值分流 → Schema 探查 → 数据清洗 → 条件筛选 →结果导出。formatted-export正是结果导出这一环节的四个 capability 子技能之一承担以下职责遍历所有 Sheet自动定位目标列不需要用户事先给出精确列名识别目标列中的空值、纯空格、字符串 nan等无效记录为每条命中记录追加来源Sheet溯源列导出为 Excel并用 openpyxl 将命中记录整行标红方便视觉识别输出下载链接供用户取用结果文件。该子技能适用于数据清洗、条件筛选与可视化标记场景与 single-sheet-export字段重命名后导出、chart-embedded-export图表嵌入导出、report-generation-export综合分析报告导出互为补充。前三者偏筛选 统计本技能则突出多 Sheet 统一筛选 样式化标记。环境依赖与前置条件子技能 frontmatter 中通过metadata.nanobot.requires声明了三个运行时依赖依赖作用pandas多 Sheet 读取、布尔掩码筛选、DataFrame 合并pd.concat与基础导出to_excelpyarrowParquet 读写引擎用于大文件加速场景本技能前端可选openpyxl工作簿加载load_workbook、单元格样式PatternFill与二次保存适用前提本技能的两个步骤直接使用pd.read_excel全量加载适用于总行数 10k的文件。按 父级工作流的大文件策略表总行数 10k可直接pd.read_excel(...)读取10k – 100k先转 Parquet 缓存再读取 100k必须改读 sn-da-large-file-analysis 技能采用流式读取 Parquet 分块模式禁止用pd.read_excel全量加载否则可能 OOM 或超时。因此在执行本技能前应先按父级工作流 Step 1 用 openpyxlread_only模式统计各 Sheet 行数再决定是否走本技能的直读路径。Step 1多 Sheet 扫描、模糊列匹配与无效记录筛选第一个代码块完成定位目标列 → 构造筛选掩码 → 跨 Sheet 收集 → 合并溯源四件事empty_target_rows [] for sheet_name, sheet_df in all_sheets.items(): target_col None # 优先匹配目标列名示例包含特定关键字的列 for col in sheet_df.columns: if keyword1 in str(col).lower() or keyword2 in str(col).lower(): target_col col break if target_col is None: # 尝试次级推断逻辑 for col in sheet_df.columns: if keyword3 in str(col) and (keyword4 in str(col)): target_col col break if target_col is None: continue # 数据清洗筛选空值和无效字符如空格、nan行 mask sheet_df[target_col].isna() | (sheet_df[target_col].astype(str).str.strip() ) | (sheet_df[target_col].astype(str).str.strip() nan) empty_rows sheet_df[mask].copy() if len(empty_rows) 0: empty_rows.insert(0, 来源Sheet, sheet_name) empty_target_rows.append(empty_rows) # 合并结果 result_df pd.concat(empty_target_rows, ignore_indexTrue) if empty_target_rows else pd.DataFrame()模糊列匹配的两级推断逻辑keyword1/keyword2/keyword3/keyword4是占位关键字实操时替换为目标列的真实语义词。整个定位过程分两级主匹配遍历当前 Sheet 的全部列名若列名字符串转小写后包含任一主关键字即命中并break。转小写.lower()处理了列名大小写不一致的情况次级推断当主匹配失败时尝试同时包含 keyword3 与 keyword4的复合条件用于主关键字过于宽泛或列名含多段语义的场景。若某 Sheet 两级定位均失败直接continue跳过该 Sheet——这正是模糊匹配的意义不同 Sheet 列名存在差异时不会中断整个流程而会将命中失败的 Sheet 静默跳过保证程序健壮性。无效记录的三重掩码mask sheet_df[target_col].isna() | (sheet_df[target_col].astype(str).str.strip() ) | (sheet_df[target_col].astype(str).str.strip() nan)这一行同时处理三类无效值条件捕获对象原理isna()真正的空单元格NaN / Nonepandas 原生缺失值标记astype(str).str.strip() 纯空格、 等空白串先转字符串、去首尾空白后判空astype(str).str.strip() nan字符串形式的 nan某些来源如人工录入会把缺失写为字符串 nan直接isna()无法捕获注意mask两侧都使用了astype(str).str.strip()即使单元格内容不是字符串如数值、日期也不会因类型混用而抛异常这是实战中保证掩码不报错的关键写法。溯源列与结果合并命中行通过empty_rows.insert(0, 来源Sheet, sheet_name)在首列位置插入来源 Sheet 名。这样合并后的结果可以回答这条空值记录到底来自哪个 Sheet这一审计问题。最后pd.concat(..., ignore_indexTrue)将各 Sheet 的子结果纵向拼接、索引重置若全程无命中则result_df为空 DataFrame供下一步判空使用。Step 2openpyxl 整行标红格式化导出第二个代码块把筛选结果落盘为整行红底的 Excel 文件并输出下载链接from openpyxl import load_workbook from openpyxl.styles import PatternFill output_path filtered_results_highlighted.xlsx if not result_df.empty: # 导出基础数据 result_df.to_excel(output_path, indexFalse) # 加载工作簿进行格式化 wb load_workbook(output_path) ws wb.active # 定义红色填充样式 red_fill PatternFill(start_colorFF0000, end_colorFF0000, fill_typesolid) # 遍历所有数据行并标红跳过表头 for row in range(2, ws.max_row 1): for col in range(1, ws.max_column 1): ws.cell(rowrow, columncol).fill red_fill wb.save(output_path) print(f结果文件已保存: {output_path}) print(f下载链接: 点击下载标红结果文件) else: print(未找到符合条件的记录无需导出。)关键实现细节先to_excel再load_workbook回写result_df.to_excel负责数据落盘随后load_workbook重新加载同一文件wb.active取得默认第一个工作表再在单元格级别施加样式。这种先写数据、后补样式的两段式是 pandas openpyxl 协作的典型模式整行标红PatternFill(start_colorFF0000, end_colorFF0000, fill_typesolid)定义实心红色填充。双重循环range(2, ws.max_row 1)×range(1, ws.max_column 1)覆盖除表头外的所有数据行与全部列实现整行而不是单格高亮行号偏移range(2, ...)从第 2 行开始是因为第 1 行是 pandas 写入的表头。该偏移思路与 outlier-coloring 子技能 中Excel 行号 pandas 索引 1的注释一致——pandas 的 0 基索引到 openpyxl 的 1 基坐标转换是此类技能的公共约定下载链接原文档以相对路径形式输出点击下载标红结果文件在沙盒运行环境中可参照 single-sheet-export 与 report-generation-export 的写法输出sandbox:{output_path}形式的可点击链接按实际运行环境二选一即可空结果保护if not result_df.empty分支保证无命中时不产出空文件并明确提示未找到符合条件的记录。同类模式在仓库源码中的印证红色标红并非本技能独有它在 SenseNova-Skills 的 Excel 技能族中形成了可复用的样式惯例可从多个子技能交叉印证outlier-coloring同样使用PatternFill(start_colorFF0000, end_colorFF0000, fill_typesolid)对超限行与#DIV/错误单元格进行红色高亮并给出Excel 行号 pandas 索引 1的显式换算说明与本文的range(2, ...)偏移逻辑互为佐证threshold-cell-coloring展示了更完整的样式体系——表头蓝底白字加粗、细边框、居中对齐、低于均值整行标绿92D050说明 openpyxl 的PatternFill / Font / Alignment / Border / Side组合可以按需扩展出任意配色方案本技能的标红只是其中最简单的一种threshold-filtering提供数值列强制转换 条件过滤 openpyxl 样式标记的相邻模式若你的筛选条件不是空值而是大于某阈值可无缝切换到该技能large-excel-reading在 openpyxl 写入阶段演示了完整样式模板表头填充、字体、边框、列宽、条件高亮与sandbox:下载链接可作为本技能从标红走向专业报表的升级范本。由此可见formatted-export的筛选 → 样式化 → 下载链接三段式是整个excel-result-export与excel-cell-coloring类目下共用的骨架差异只在于筛选条件的构造与填充色的选择。大文件场景的扩展注意点本技能的直读写法有明确边界 10k 行。若文件更大需按 父级工作流 的分级策略处理10k – 100k先执行df pd.read_excel(file_path, sheet_nametarget_sheet)一次df.to_parquet(parquet_path, enginepyarrow)转 Parquet 缓存之后所有后续读取含本技能的列匹配与筛选都改从 Parquet 读避免重复解析 xlsx 100k禁止使用pd.read_excel全量加载与df.apply(lambda...)/df.iterrows()逐行操作应加载 sn-da-large-file-analysis使用其stream_excel_to_parquet()以 50k 行分块、恒定内存地完成读取全文件打印、字体检索等行为也在 父级 SKILL.md 的禁止清单 中明令禁止大文件下的样式化导出同样成立openpyxl 的PatternFill施加于已落盘的 xlsx不受数据量级影响large-excel-reading的 Step 3 即证明该模式可服务于大文件报告。小结与整体工作流的衔接formatted-export位于 sn-da-excel-workflow 的第 6 步结果导出其上游是读取excel-reading/multi-sheet-reading、大文件门控excel-reading/large-excel-reading、清洗excel-data-cleaning/missing-value-handling、invalid-data-cleaning与筛选excel-data-filtering/condition-filtering。实际编排时只需按需加载对应子技能read_file单个 SKILL.md勿一次性全部加载以节省上下文即可从多 Sheet 空值记录定位 整行标红导出这一单点能力出发组装出完整的 Excel 数据清洗与报告生成流水线。skills_root/sn-da-excel-workflow/capability/excel-result-export/formatted-export/SKILL.md ← 本文核心 skills_root/sn-da-excel-workflow/SKILL.md ← 工作流编排与规模门控 skills_root/sn-da-excel-workflow/capability/excel-result-export/single-sheet-export/SKILL.md ← 相邻导出模式 skills_root/sn-da-excel-workflow/capability/excel-cell-coloring/outlier-coloring/SKILL.md ← 红色高亮惯例 skills_root/sn-da-large-file-analysis/SKILL.md ← 100k 行流式读取以上skills_root即仓库根目录skills/实际引用时替换为 skills/ 下的完整相对路径即可。赞分享AI 技能人工智能深度研究数据分析媒体生成【免费下载链接】SenseNova-SkillsModular SenseNova skills for building AI-powered office assistants and productivity workflows项目地址https://gitcode.com/gh_mirrors/se/SenseNova-Skills点击查看免费下载相关推荐SenseNova-Skills 条件筛选子技能实战Excel 多维度条件筛选、正则提取与标红导出全流程SenseNova Skills 条件筛选子技能实战Excel 多维度条件筛选、正则提取与标红导出全流程 条件筛选 condition filteringAI 技能人工智能深度研究数据分析媒体生成SenseNova-Skills 阈值筛选子技能threshold-filtering实战数值清洗、条件过滤与 openpyxl 单元格样式标记SenseNova Skills 阈值筛选子技能threshold filtering实战数值清洗、条件过滤与 openpyxl 单元格样式标记 导读 AI 技能人工智能深度研究数据分析媒体生成SenseNova-Skills 实战基于多维数值条件筛选的 Excel 数据处理与大规模性能优化SenseNova Skills 实战基于多维数值条件筛选的 Excel 数据处理与大规模性能优化 导读 本文围绕 SenseNova Skills 仓库中AI 技能人工智能深度研究数据分析媒体生成上一篇ThinkPad终极散热指南如何在Windows上实现智能风扇控制下一篇XXPermissions 权限框架适配 HelpDoc 实战指南从 Android 11 分区存储到永久拒绝与国产 ROM 兼容性问题排查创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

靶场实战一安全配置漏洞靶场通关教程

靶场实战一安全配置漏洞靶场通关教程

目录 IIS解析漏洞在fckEditor上传攻击中的利用 Nginx解析安全与实战 待续、更新中...... IIS解析漏洞在fckEditor上传攻击中的利用 fckEditor在线编辑器 FCKeditor是一个功能强大,支持所见即所得功能的文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务。 它不…

2026/10/13 6:05:07 阅读更多 →
下午题_试题三

下午题_试题三

一.题型UML常考内容:类图、用例图。常见题型:第一问:补全用例图的参与者、用例第二问:补充类图缺少的类名第三问:扩展二.基础知识讲解1.UML的四种关系①依赖举例:这个读作A依赖B,说白了就是A用到…

2026/10/13 6:05:11 阅读更多 →
在 ccg-workflow 中落地 Liquid Glass 设计系统:Apple 风格半透明玻璃 UI 的令牌、组件与动效实战指南

在 ccg-workflow 中落地 Liquid Glass 设计系统:Apple 风格半透明玻璃 UI 的令牌、组件与动效实战指南

【免费下载链接】ccg-workflow 多模型协作工作流引擎 — /ccg:go 一个命令,AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行 项目地址: https://gitcode.com/gh_mirrors/cc/ccg-workflow 点击查看 免费下载 Liquid Glass 是 ccg-workf…

2026/10/13 6:05:15 阅读更多 →

最新新闻

统一多模型API网关litellm实战:从配置到生产部署

统一多模型API网关litellm实战:从配置到生产部署

这段时间我一直在做一个内部的多模型调度平台,见得最多的一个词就是 litellm。它不是一个具体的大模型,也不是某个框架的插件,而是一个把各种模型 API 统一成一套格式的网关层工具。说白了,你只需要学会接一个服务,剩下…

2026/10/13 13:58:46 阅读更多 →
高中化学实验题满分攻略:从操作原理到误差分析的系统梳理

高中化学实验题满分攻略:从操作原理到误差分析的系统梳理

1. 为什么高中化学实验题总是“看着全会、做题全废”先抛个问题:你有没有过这种经历——课本上的实验都读了一遍,氯气的实验室制法、氨气的喷泉实验、酯化反应的装置图,看着都觉得挺简单,可一到考试,装置图给你一个洗气…

2026/10/13 13:58:46 阅读更多 →
AI写代码的质量保卫战:规范、评审与风险测试三重防线

AI写代码的质量保卫战:规范、评审与风险测试三重防线

1. 这不是又一个“AI写代码”的热闹话题,而是工程团队正在真实发生的质量保卫战最近在几个技术社区和内部分享会上,我反复听到同一个问题:“我们上了Copilot、接入了CodeWhisperer、也试了各种本地大模型,但代码质量没变好&#x…

2026/10/13 13:58:46 阅读更多 →
PyCharm安装配置避坑指南:跨平台解释器绑定与IDE工程化预检

PyCharm安装配置避坑指南:跨平台解释器绑定与IDE工程化预检

简介:本资源是一份面向Python初学者与转行开发者的PyCharm零基础安装与入门配置指南,聚焦解决“不会装、不敢用、配不熟”三大实操痛点。PDF文档结构清晰,完整覆盖Windows、macOS、Linux三大主流系统下的下载选择、分步安装、首次配置&#x…

2026/10/13 13:58:46 阅读更多 →
SpringBoot+Vue+SpringCloud微服务实战:社区帮扶平台从单体重构到分布式

SpringBoot+Vue+SpringCloud微服务实战:社区帮扶平台从单体重构到分布式

前阵子帮老家社区做了一个邻里互帮互助的小平台,一开始就打算用单体应用糊弄过去,结果需求一多彻底压不住——又要搞门户展示、又要做帮扶工单流转、还要上可视化大屏给街道看数据,再加上志愿者积分、公告通知、用户认证这些模块,…

2026/10/13 13:58:46 阅读更多 →
PCL 1.13.0 与 Qt 6 集成实战:从 CMake 到点云可视化

PCL 1.13.0 与 Qt 6 集成实战:从 CMake 到点云可视化

简介:面向需要在Qt6框架中集成PCL 1.13.0进行点云处理开发的工程师与研究者,这份资源提供了完整的PCL编译产物与配套依赖。包内含约2.4万个文件,以hpp/h头文件、lib静态库、dll动态库及cmake配置文件为主,另含3rdParty第三方依赖、…

2026/10/13 13:57:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →