Python问卷统计自动化教程:用pandas从CSV清洗到Excel报告生成
简介2024年整理的Python调查问卷数据统计实战资料包面向需要处理问卷数据并生成统计报表的Python初学者与数据分析人员。压缩包共129个文件整体约185.63MB涵盖38个PPTX演示课件、15个DOC与10个DOCX说明文档、15个MD学习笔记、11个PDF参考手册以及Python脚本和PNG/JPG示意图等分别用于讲解演示、流程说明、代码实现与结果展示并配有少量演示视频与TeX排版源文件目录划分清楚便于按需查阅。配套材料覆盖数据清洗、频数统计、交叉分析与可视化输出等关键环节同时内附软件工程文档模板与ISO标准资料可辅助规范项目交付PPTX课件适合课堂讲解DOCX/MD文档便于二次编辑与笔记整理。目前已有208人学习下载适合课程设计、毕业设计或实际问卷调研项目中的统计建模与报表自动化。1. 这项目能解决什么回收了上千份问卷还在用电子表格手工算比例说实话处理“2024 Python实现调查问卷数据统计”这类需求最该先想清楚的其实不是统计方法而是怎么把电子表格里的手工作业彻底干掉。我见过太多同事抱着几千份问卷在 Excel 里拖公式、刷下拉框一次漏选就导致整列数据错位最后汇总出来的百分比对不上回收数只能熬夜重查。这个项目做的事情很朴素输入一份带原始答案的 CSV跑一个脚本输出一份带图表的 Excel 统计报告整套流程从几个小时缩短到十秒以内。它的核心竞争力不是高深的算法而是一套严谨的清洗、统计、交叉分析和导出的工程化流程。适合手里攒了大量问卷、需要反复出报表的分析师或运营也适合想学习用 pandas 做数据落地项目的人。2. 项目架构拆解从原始答卷到统计报告的分层设计2.1 技术选型为什么只依赖 pandas、openpyxl、matplotlib 三件套问卷统计这个场景有它独特的约束单次数据量通常不超过几万行理论上完全不需要引入数据库或大数据组件输出物要求能被业务方直接打开最通用的格式就是 Excel运行环境往往是一台普通办公电脑装不了太重的东西。基于这些约束我选了 pandas 负责读取和透视openpyxl 负责写带格式的 Excelmatplotlib 负责生成统计图三样加起来就是整套工具链。选型时也考虑过把统计结果直接做成网页看板但问卷统计更看重“一次产出、反复分发”的交付形态Excel 报告可以直接丢进企业微信或邮件业务方双击就能看不需要额外部署。而 PyQt 桌面端在这个场景里有点重且大部分问卷运营同学没有安装 Python 环境脚本化反而是最轻的交付方式。整个项目最终只需要三个第三方库环境搭建成本几乎为零。2.2 目录结构与模块职责四层边界怎么划分工程结构按照数据流方向做了严格分层每个模块只负责一件事避免把清洗和统计逻辑混在一个文件里。目录长这样survey_stats/ ├── config.yaml # 题型配置、列名映射、选项顺序 ├── run.py # 入口脚本串联全流程 ├── data/ │ └── survey_raw.csv # 在线问卷工具导出的原始数据 ├── output/ # 生成的 Excel 和图表 ├── src/ │ ├── loader.py # 读取原始 CSV做基本类型转换 │ ├── cleaner.py # 缺失值处理、选项归一化、多选拆分 │ ├── analyzer.py # 单选题频数、多选题选中率、交叉分析 │ └── reporter.py # 把统计结果写入 Excel 并生成图表 └── tests/ └── test_sample_data.py # 用一份造假数据做回归验证loader、cleaner、analyzer、reporter 四个模块串成一条单向管道前一个函数的输出是后一个函数的输入。日常改需求时比如换问卷平台、增加题型、调整图表样式都只需要动对应模块不需要重新梳理别人写的逻辑。这个边界带来的好处在项目后期尤其明显改过 clean 逻辑之后analyzer 完全不用动回归测试只盯住清洗前后的数据一致性就够了。2.3 数据列约定与数据流主线在线问卷工具导出的 CSV 列名通常是Q1、Q2这种缩写如果不先在配置里说清楚每列的含义后面写统计口径时很容易张冠李戴。项目约定了一套列字段规范在config.yaml里登记每题的题型和选项列表列名字段说明示例值统计口径submit_time提交时间2024-05-06 14:22:31分析提交高峰时段Q1单选题A. 18-25岁计算频数与占比Q3多选题A. 产品功能; B. 价格拆分后计算选中率Q7_1评分矩阵第1题4计算均值、中位数、分布整体数据流是loader 把 CSV 读成 DataFramecleaner 处理缺失值和选项格式analyzer 按题型配置逐题计算reporter 最后把结果表和图写入 Excel。每一层输出的结构都是标准表格层与层之间不传中间状态对象出问题时可以直接在某一步打印 DataFrame 人工核对不用把整个链路的中间变量都存在内存里。3. 核心代码逐段拆解从加载到清洗再到统计的主链路3.1 数据加载与清洗先把脏数据挡在门外第一步是把原始 CSV 安全地读进 pandas并处理掉最基础的脏数据。这里有个小坑在线问卷工具导出的 CSV 通常是带 BOM 的直接用encodingutf-8读会把第一列列名变成\ufeffQ1所以我习惯用utf-8-sig。清洗逻辑里还需要处理整行大面积缺失的答卷以及单选题选项里混入的多余空格和括号。import pandas as pd def load_and_clean(raw_path: str, drop_empty_threshold: float 0.5) - pd.DataFrame: df pd.read_csv(raw_path, encodingutf-8-sig) before len(df) # 整行缺失超过一半的样本直接丢弃这类答卷没有分析价值 empty_ratio df.isna().mean(axis1) df df[empty_ratio drop_empty_threshold] # 单选题列做选项归一化避免“A”和“A.”被当成两个选项 single_choice_cols [Q1, Q2, Q6] for col in single_choice_cols: df[col] df[col].astype(str).str.strip() df[col] df[col].str.replace(, ().str.replace(, )) df[col] df[col].str.replace(r^([A-Da-d])[,、.], r\1, regexTrue) print(f清洗前 {before} 份清洗后 {len(df)} 份有效率 {len(df) / before:.2%}) return dfdrop_empty_threshold参数控制丢弃标准默认 0.5 表示一行里超过一半的题目是空值就删除。单选题归一化里的正则^([A-Da-d])[,、.]是为了把“A、”“A,”这种前缀统一成纯字母后续统计选项频数时才不会出现“A”和“A”两个类目。清洗后打印有效率这行日志很重要每次跑脚本时先看一眼这个数字能快速判断数据质量是涨了还是跌了。3.2 单选与多选统计value_counts 和 explode 的组合拳单选题的统计本质就是一个value_counts加百分比换算。多选题要麻烦一些原始数据里选项是用分号或逗号拼在一格里的必须先拆开再做频数统计否则“A;B”会被当成一个独立选项。拆分的核心是explode它能把一个包含列表的单元格展开成多行。def single_choice_stats(df: pd.DataFrame, col: str) - pd.DataFrame: count df[col].value_counts() total len(df) percent (count / total).round(4) return pd.DataFrame({选项: count.index, 频数: count.values, 占比: percent.values}) def multi_choice_stats(df: pd.DataFrame, col: str, sep: str ;) - pd.DataFrame: # 先把空值填成空字符串再按分隔符拆成列表 df[col] df[col].fillna().astype(str) df_exp df.assign(_splitdf[col].str.split(sep)).explode(_split) df_exp[_split] df_exp[_split].str.strip() # 选中率的分母是回收总数不是拆分后的总行数 count df_exp[_split].value_counts() total len(df) return pd.DataFrame({ 选项: count.index, 选中次数: count.values, 选中率: (count / total).round(4), })多选题的选中率这里特意用回收总数做分母而不是用拆分后的行数。很多初学者会在这翻车把选中率算成“选了这个选项的人里面又有多少人选了别的”逻辑就偏了。单选题value_counts()会默认丢弃空值所以占比的分母同样是len(df)而不是非空数量这两个函数的口径保持一致后面画图、写结论时不会出现同一题目两张饼图加起来对不上的情况。3.3 交叉分析与评分矩阵单看频数看不出真实问题问卷统计最容易出彩的部分是交叉分析比如“不同年龄段的人对功能满意度的差异”。实现上用pandas.crosstab就够了核心是明确哪个维度做行、哪个维度做列。评分矩阵题则不能只看均值还要看分布因为均值会被极端值拉偏我在第 5 章会专门展开讲这个问题。def cross_stats(df: pd.DataFrame, row_col: str, col_col: str) - pd.DataFrame: # 行是分组维度如年龄段列是分析目标如满意度 cross pd.crosstab(df[row_col], df[col_col], marginsTrue, margins_name合计) return cross def score_matrix_stats(df: pd.DataFrame, col_prefix: str, dims: list) - pd.DataFrame: # 评分矩阵题在原始数据里是 Q7_1、Q7_2 这种带后缀的列 score_cols [f{col_prefix}_{i} for i in range(1, len(dims) 1)] agg df[score_cols].agg([mean, median, count]).T agg.index dims return agg.round(2)crosstab里的marginsTrue会自动加一行一列合计方便快速核对不同分组的总数是否一致。评分矩阵的agg([mean, median, count])一次算出三个统计量中位数和均值一起看才能发现数据是否存在两极分化。如果只有均值没有中位数一份“60% 的人打 1 分、40% 的人打 5 分”的数据会显示成均值 2.6看起来还行实际用户体验已经崩了。4. 运行步骤与结果验证命令行跑出一份带图表的 Excel 报告4.1 环境准备与配置文件运行前先装依赖Python 3.10 环境下三个库都用当前稳定版即可pip install pandas openpyxl matplotlib项目的入口是run.py它本身不写死任何参数全部从config.yaml读取。配置文件里登记了每个题目的题型和列名这样换一份问卷时不需要改代码只改配置就行raw_path: ./data/survey_raw.csv output_dir: ./output sheet_name: 问卷统计 plot: enabled: true dpi: 150 single_choice: Q1: { label: 年龄段 } Q2: { label: 使用频率 } multi_choice: Q3: { sep: ; } score_matrix: Q7: { dims: [功能完整性, 响应速度, 界面美观度, 数据准确性, 整体体验] }raw_path和output_dir控制输入输出位置single_choice里给每道题起了个可读标签生成报告的 sheet 名和图表标题会直接用这个标签score_matrix的dims列表顺序必须和原始数据里的Q7_1到Q7_5一一对应。4.2 命令行启动一条命令跑完全流程安装完依赖、调整好配置后直接执行python run.py --config config.yaml命令行也支持覆盖配置文件里的路径参数比如临时换一批数据时不用改配置文件python run.py --config config.yaml --input ./data/第二批问卷.csv --output ./output/batch2/启动脚本会依次执行 load → clean → analyze → report 四个步骤每步都在控制台打印当前处理的行数和耗时。如果某一步抛异常打印的日志会明确告诉你是哪一步挂的不会出现“Excel 里数据不对劲但不知道哪里算错了”的尴尬。4.3 输出物与结果核验运行结束后output目录下会生成一个带时间戳的 Excel 文件包含以下 sheetSheet 名内容总体情况回收总数、有效率、各题作答率单选题分布每道单选题的频数、占比、柱状图多选题分布每道多选题的选中次数、选中率、条形图交叉分析按配置的分组维度生成的交叉表评分矩阵均值和分布热力图文本答案开放题原文便于后续人工质检拿到 Excel 后的核验方法是固定的三步先看“总体情况”里的回收总数和原始 CSV 行数是否一致再看“单选题分布”里每题的频数合计是否等于回收总数最后抽 10 份原始问卷人工比对几个关键选项的统计结果。这三步走完这份报告基本就可以放心交出去了。5. 避坑指南5 个让我翻车的问卷统计真实问题5.1 多选题拆列后统计总和大于回收总数现象多选题统计完之后所有选项的选中次数加起来比回收的问卷总数还多出一大截怎么看都觉得不对。原因数据里有一部分问卷是用中文分号“”分隔的另一部分用的是英文分号“;”代码只按英文分号拆中文分号那批根本没拆开整格内容被当成一个超长选项统计了。解决清洗阶段先探测列里存在的所有分隔符把中文分号、中文逗号统一替换成英文分号再拆分。从那以后我处理任何问卷导出数据都会先看一眼原始文件里的分隔符实际形态不轻易假设“肯定都是英文符号”。5.2 单选题选项里藏了个换行符图例断成两行现象生成柱状图后某个选项的图例文字在 Excel 里被截断显示成两行看起来像两道题。原因问卷平台允许用户在“其他”选项里输入自定义文本导出时把换行符也带进了单元格pandas 读取后换行符依然存在。解决清洗时统一对单选题列做一次str.replace(\n, )把换行替换成空格。这个问题很隐蔽因为直接看 DataFrame 时换行符几乎看不出来只有画图或打印时才暴露。5.3 openpyxl 导出的 Excel 在部分设备上中文显示成乱码现象同一份报告在自己电脑上打开正常发给别人后对方用老版本办公软件打开中文全部变成乱码。原因Excel 文件本身编码没问题但单元格没指定字体老版本软件会按默认字体渲染。解决reporter 里写入表头时统一指定字体。from openpyxl.styles import Font def style_header(ws, row: int, col_count: int): for col in range(1, col_count 1): cell ws.cell(rowrow, columncol) cell.font Font(name宋体, size10, boldTrue)指定字体后中文在任何设备上打开都不会再乱码。这个方案不算优雅但胜在简单可靠办公场景里兼容性比“理论上应该没问题”重要得多。5.4 评分题的均值被极端值带偏直接报结论被当面质疑现象某道评分题算出来均值 4.2汇报时有人当场质疑“我们收到的反馈里明明有不少低分这个均值怎么这么高”。原因均值被满分党拉高了实际上数据分布是两极分化一半人打 5 分另一半人打 1 分和 2 分。解决评分题除了均值强制同时输出中位数、众数和分数分布直方图。做汇报时先看分布再说均值结论才站得住。5.5 改过一次问卷顺序两批数据的“A选项”含义完全不同现象第二批问卷发布时调整了某道题的选项顺序统计两批合并数据时发现同一个字母选项的累计百分比诡异。原因问卷平台导出的是选项字母而不是选项文本第一批的 A 是“满意”第二批的 A 变成了“不满意”直接合并统计就是鸡同鸭讲。解决在配置里增加一个批次映射字段清洗时按批次把字母还原成选项文本。option_map { batch_202405: {Q1: {A: 满意, B: 一般, C: 不满意}}, batch_202406: {Q1: {A: 不满意, B: 一般, C: 满意}}, }这个坑最坑的地方在于两批数据单独看都没问题只有合并时才爆炸。从那以后我每次拿到新批次数据都先和上一批的配置做一次 diff确认选项顺序没有变化再进统计流程。6. 从统计到分析二次开发的三个扩展方向可以直接动手6.1 把 loader 替换成任意数据源项目目前只支持 CSV但问卷工具导出格式五花八门最常见的还有 Excel 和 JSON。扩展方式很直接loader 的对外接口只有一个load_data(path) - DataFrame新写一个load_excel或load_json只要返回的 DataFrame 列名和配置一致后面清洗和统计代码完全不用动。我一般会在 loader 里加一句print(df.columns.tolist())把实际读到的列名打出来避免配置里的列名和原始数据对不上时一脸懵。6.2 新增题型只需要注册一个函数分析模块的题型扩展是这套代码里收益最高的改动。把各题型的统计函数注册到一张表里统计时通过配置里的type字段查找对应的处理函数STAT_TYPE_REGISTRY { single: single_choice_stats, multi: multi_choice_stats, cross: cross_stats, score_matrix: score_matrix_stats, } def run_analysis(df: pd.DataFrame, stat_cfg: dict) - dict: results {} for question_id, spec in stat_cfg.items(): handler STAT_TYPE_REGISTRY[spec[type]] results[question_id] handler(df, spec[col], **spec.get(kwargs, {})) return results以后遇到新的题型比如排序题、滑动条打分只需要写一个函数再注册进去配置里加一行就能跑通。这个注册表模式没有引入复杂的框架却让新增题型的成本从“改代码逻辑”降到了“加一个函数”。6.3 定时生成报告自动化最后的临门一脚如果问卷是持续回收的每周手动跑一次脚本还是不够省事。可以在run.py里加一个定时触发分支通过系统自带的任务计划程序每周调用一次脚本只处理data目录下本周新增的文件输出到带日期的子目录旧的报告不会被覆盖。这样早上到公司直接就能拿到上周的统计报告连打开电脑跑命令这一步都省了。这个项目的核心价值不是统计本身而是把统计过程从“手工操作”变成了“可重复、可验证、可交付”的流水线。那以后我每次接到问卷统计需求都强制自己先花十分钟把列名、题型、选项映射写进配置再让脚本跑一遍描述统计确认数据没有黑匣子之后才开始做交叉分析。这一步强制检查帮我省掉了太多来回扯皮的时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LTX-Video与ComfyUI:文生视频工作流搭建与参数优化实战

LTX-Video与ComfyUI:文生视频工作流搭建与参数优化实战

1. 项目这块到底要解决什么事1.1 为什么要用LTX-Video做文生视频有些朋友可能已经在短视频平台刷到过那种AI生成的动态画面,其实背后就是文生视频模型在做推理。LTX-Video这套模型,简单说就是把一段文字描述直接变成几秒钟的动态画面,而且整套…

2026/10/17 17:56:36 阅读更多 →
RV1126内核驱动入门:交叉编译到烧写的完整实战

RV1126内核驱动入门:交叉编译到烧写的完整实战

1. 为什么零基础入门建议从RV1126内核驱动开始RV1126内核驱动编译与烧写,听起来像是需要啃半年内核源码才能碰的东西,但实际拆开看,就是一套可以照着做的流程。我第一次接触这块芯片的时候,连交叉编译工具链都没配明白&#xff0c…

2026/10/17 17:55:36 阅读更多 →
二次判别分析QDA:非线性分类边界背后的原理与Python实战

二次判别分析QDA:非线性分类边界背后的原理与Python实战

1. 需要一个比线性边界更灵活的模型时做分类任务的朋友应该都遇到过这种情况:拿逻辑回归或者线性判别分析(LDA)跑了一版模型,测试集准确率卡在某个数值怎么都上不去。画一下决策边界发现,两类数据之间那条分界线压根不…

2026/10/17 17:55:36 阅读更多 →

最新新闻

云计算ETF领涨背后:算力需求、资金轮动与指数机制的深度拆解

云计算ETF领涨背后:算力需求、资金轮动与指数机制的深度拆解

最近一段时间,只要盯盘超过十分钟,很难不注意到云计算ETF的动静。盘面上,跟踪云计算主题指数的场内基金连续放量,价格一步一个台阶往上抬,在多数行业板块里显得特别扎眼。我也把这类行情的走势、成交额和资金数据来回看…

2026/10/17 18:49:11 阅读更多 →
SQL Server外键与级联更新机制:从主键到引用完整性全面解析

SQL Server外键与级联更新机制:从主键到引用完整性全面解析

简介:这是一份数据库实验四的完整实验报告文档(docx),面向正在学习SQL Server数据完整性约束的学生,覆盖主键、唯一约束、外键引用完整性与级联更新的T-SQL操作方法。内容以课内任务为主线,完整记录了创建/…

2026/10/17 18:49:11 阅读更多 →
平安银行IT笔试题深度解析与工程化验证方法

平安银行IT笔试题深度解析与工程化验证方法

简介:本资源为平安银行IT岗位招聘笔试真题及详解文档,面向计算机专业应届生与转行求职者,聚焦银行科技岗笔试核心能力考察——涵盖.NET平台原理、数据库系统设计、面向对象编程(C/Java)、数据结构与算法(堆…

2026/10/17 18:49:11 阅读更多 →
从三国杀攻略App看OpenHarmony上的Flutter长列表优化

从三国杀攻略App看OpenHarmony上的Flutter长列表优化

先说点实际的。前段时间我在业余时间做了一个三国杀攻略App,目标平台里明确包含OpenHarmony,技术栈选了Flutter。说实话,最初让我心里没底的不是业务逻辑,而是性能:武将列表、卡牌图鉴这种内容本身就是“长列表 高密度…

2026/10/17 18:49:11 阅读更多 →
Linux线程控制实战:同步互斥、生命周期与线程池构建

Linux线程控制实战:同步互斥、生命周期与线程池构建

做Linux服务端开发这些年,我发现自己对Linux线程控制的认知分了好几个阶段。最开始觉得线程控制无非就是pthread_create、pthread_join、pthread_mutex_lock这一套API,能跑起来就行;后来开始管线程池、处理并发任务,才发现线程控制…

2026/10/17 18:49:11 阅读更多 →
Kafka源码分析(一):核心架构与关键机制全景解析

Kafka源码分析(一):核心架构与关键机制全景解析

Kafka源码分析(一) - 概述1. 项目概述1.1 为什么要从源码层面认识KafkaKafka在消息队列领域的位置已经不需要多讲,无论是日志采集、实时计算、还是事件驱动架构,几乎每个公司的核心链路里都有它的身影。但用得熟不代表理解深。很多人对Kafka的认知停留在…

2026/10/17 18:48:10 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →