Python数据分析实战:300行代码分析数据分析师岗位要求与薪资
简介这份资源是面向数据分析初学者与求职者的Python实战项目包围绕数据分析师职位信息展开帮助读者掌握从数据清洗到可视化呈现的完整分析流程。包内共10个文件以ipynb笔记本、py脚本、csv数据、html报告为主另含字体、说明文档与图片压缩包约40.89MB结构清晰便于按步骤复现。项目约300行代码涵盖Pandas加载与清洗数据、缺失值与重复值处理、描述性统计与探索性分析并用Matplotlib绘制薪资分布、经验与薪资关系等图表同时提供源码与说明文档辅助理解。目前已有372人学习。读者可借此熟悉数据分析项目的组织方式积累EDA与可视化实操经验为求职或课程作业提供可参考的完整案例。1. 一份 300 行的数据分析师职位分析脚本到底能帮你解决什么问题招聘网站上搜「数据分析师」出来的岗位描述千奇百怪有的要求会 SQL 和 Excel有的要求会 Python 加机器学习有的写着「数据敏感度高」却连工具都不提。如果你想搞清楚这个岗位到底在要求什么、自己差在哪、该往哪个方向补靠一页页翻招聘信息是不现实的。这份约 300 行的 Python 数据分析与可视化项目做的就是这件事把一批数据分析师岗位的招聘数据读进来用 pandas 做数据探索分析再用 matplotlib 把结论画出来。它不涉及爬虫不涉及数据库拿到一份 CSV 就能跑。适合两类人一是刚学完 Python 基础、想找一个完整项目练手的入门者二是正在考虑转行或跳槽数据分析师、想用数据而不是感觉来判断岗位要求的人。整份代码的核心逻辑只有两条线——先搞清楚数据长什么样再让图表替你说话。2. 数据探索分析拿到一份招聘 CSV 之后先做什么2.1 环境准备与依赖安装这个项目依赖三个库pandas 做数据处理matplotlib 做可视化jieba 做中文分词后面分析技能关键词时会用到。如果你用的是 PyCharm 或 VS Code先确认 Python 环境已经配好然后在终端里执行pip install pandas matplotlib jieba如果你在国内网络环境下安装缓慢可以加一个国内镜像源pip install pandas matplotlib jieba -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成后建议在脚本开头统一导入并设置中文字体。matplotlib 默认不支持中文如果不设置图表上的中文会变成方块。这是一个几乎每个人第一次用 matplotlib 画中文图表时都会踩的坑import pandas as pd import matplotlib.pyplot as plt import jieba import re from collections import Counter # 设置中文字体Windows 用 SimHeiMac 用 Arial Unicode MS plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False # 解决负号显示为方块的问题font.sans-serif指定字体族axes.unicode_minus设为 False 是为了让坐标轴上的负号正常显示。这两行建议直接写进你的脚本模板里省得每次画图都重新查。2.2 读取数据与第一轮体检假设你拿到的数据文件叫jobs.csv编码是 UTF-8。第一步不是急着画图而是先做数据体检——看形状、看列名、看缺失、看重复df pd.read_csv(jobs.csv, encodingutf-8) # 基本体检 print(数据形状:, df.shape) print(列名:, df.columns.tolist()) print(缺失值统计:) print(df.isnull().sum()) print(重复行数:, df.duplicated().sum()) # 看前几行确认字段含义 print(df.head())df.shape返回 (行数, 列数)让你知道数据量级。df.isnull().sum()逐列统计缺失值招聘数据里「薪资」和「公司规模」这两列经常有缺失。df.duplicated().sum()检查完全重复的行有些招聘网站同一岗位会重复发布需要去重。如果发现薪资列是「15-25K·13薪」这种字符串格式需要先清洗成数值才能做统计分析def parse_salary(s): if pd.isna(s): return None s str(s).upper().replace(K, ).replace(·13薪, ).replace(·14薪, ) parts s.split(-) if len(parts) 2: try: low float(parts[0]) high float(parts[1]) return (low high) / 2 # 取中位数作为该岗位薪资代表值 except ValueError: return None return None df[salary_avg] df[薪资].apply(parse_salary) print(薪资解析后缺失:, df[salary_avg].isnull().sum())这里用apply对每一行调用parse_salary函数把薪资区间转成均值。取均值的理由是后续做分布分析和城市对比时区间无法直接参与计算均值是一个合理的近似。如果你的分析目标是「薪资天花板」那应该取high而不是均值。2.3 城市分布与薪资对比数据体检完之后最自然的第一个分析问题是数据分析师岗位集中在哪些城市这些城市的薪资水平差多少# 城市岗位数量 Top 10 city_counts df[城市].value_counts().head(10) print(city_counts) # 各城市平均薪资 city_salary df.groupby(城市)[salary_avg].agg([mean, count]) city_salary city_salary[city_salary[count] 5] # 过滤样本太少的城市 city_salary city_salary.sort_values(mean, ascendingFalse).head(10) print(city_salary)value_counts()统计每个城市出现的次数groupby加agg同时计算均值和样本量。这里加了一个count 5的过滤条件——如果某个城市只有 1-2 条招聘数据它的平均薪资没有统计意义容易误导结论。这是做分组统计时的基本素养样本量太小的组不要单独拿出来说。用 matplotlib 把结果画成横向柱状图fig, ax plt.subplots(figsize(10, 6)) city_salary[mean].plot(kindbarh, axax, color#4C72B0) ax.set_xlabel(平均薪资K) ax.set_ylabel(城市) ax.set_title(数据分析师岗位平均薪资 Top 10 城市) for i, v in enumerate(city_salary[mean]): ax.text(v 0.3, i, f{v:.1f}K, vacenter, fontsize9) plt.tight_layout() plt.savefig(city_salary.png, dpi150) plt.show()barh画横向柱状图城市名放 Y 轴不会挤在一起。ax.text在每个柱子末尾标注具体数值比只看柱子长度更直观。tight_layout()自动调整边距防止标签被裁掉savefig的dpi150保证导出图片清晰度够用。2.4 学历与经验要求的交叉分析招聘数据里通常有「学历要求」和「经验要求」两列。单独看每一列的意义不大交叉起来才能看出门槛# 学历分布 print(df[学历].value_counts()) # 经验要求分布 print(df[经验].value_counts()) # 交叉表不同学历下的平均薪资 cross df.pivot_table(valuessalary_avg, index学历, columns经验, aggfuncmean) print(cross.round(1))pivot_table是 pandas 里做交叉分析的核心函数。values指定要聚合的数值列index和columns分别指定行和列的分组字段aggfunc指定聚合方式。输出结果是一张二维表行是学历、列是经验单元格里是平均薪资。这样你一眼就能看出本科学历加 3-5 年经验和硕士学历加 1-3 年经验哪个薪资更高。如果交叉表里出现大量 NaN说明某些学历和经验的组合没有样本。这时候不要急着填充NaN 本身就是信息——它告诉你这个组合在市场上不存在或者极少。3. 用 matplotlib 把分析结论画成能看的图3.1 技能关键词提取与词频统计招聘 JD 里最有价值的信息藏在「岗位要求」那段文本里。要分析技能关键词先用 jieba 分词再统计词频# 把所有岗位要求文本拼成一个大字符串 all_text .join(df[岗位要求].dropna().astype(str)) # 用 jieba 分词 words jieba.lcut(all_text) # 过滤停用词和短词 stopwords {的, 了, 和, 与, 或, 等, 熟悉, 熟练, 掌握, 具备, 能力, 经验, 优先, 以上, 相关, 进行, 能够, 要求, 负责, 工作} filtered [w for w in words if len(w) 2 and w not in stopwords and not re.match(r^[a-zA-Z0-9]$, w)] # 统计词频 Top 20 word_freq Counter(filtered).most_common(20) for word, count in word_freq: print(f{word}: {count})jieba.lcut返回分词后的列表。停用词表需要根据实际数据调整——比如「熟悉」「熟练」这类词在每个 JD 里都出现统计出来没有区分度应该过滤掉。re.match(r^[a-zA-Z0-9]$, w)过滤掉纯英文和数字的词因为技能关键词通常是中文如「机器学习」「数据挖掘」或中英混合如「SQL」「Python」纯英文单词可以单独处理。3.2 词频柱状图与散点图的参数调优把词频结果画成柱状图words_top [w for w, c in word_freq[:15]] counts_top [c for w, c in word_freq[:15]] fig, ax plt.subplots(figsize(12, 6)) bars ax.barh(words_top[::-1], counts_top[::-1], color#55A868) ax.set_xlabel(出现次数) ax.set_title(数据分析师岗位技能关键词 Top 15) for bar in bars: width bar.get_width() ax.text(width 0.5, bar.get_y() bar.get_height()/2, f{int(width)}, vacenter, fontsize9) plt.tight_layout() plt.savefig(skill_keywords.png, dpi150) plt.show()words_top[::-1]把列表反转让出现次数最多的词显示在最上面。bar.get_width()获取柱子长度用于标注数值。bar.get_y() bar.get_height()/2计算柱子的垂直中心位置保证文字对齐。如果你还想看薪资和经验的分布关系散点图比柱状图更合适fig, ax plt.subplots(figsize(10, 6)) ax.scatter(df[经验年限], df[salary_avg], alpha0.5, s30, c#C44E52, edgecolorswhite, linewidth0.5) ax.set_xlabel(经验要求年) ax.set_ylabel(平均薪资K) ax.set_title(经验要求与薪资分布) ax.grid(True, linestyle--, alpha0.3) plt.tight_layout() plt.savefig(experience_salary.png, dpi150) plt.show()alpha0.5设置透明度数据点重叠时能看到密度。s30控制点的大小edgecolorswhite给每个点加白色边框视觉上更清晰。grid加虚线网格辅助读数alpha0.3让网格不抢眼。这些参数看起来琐碎但调过和没调过的图放在报告里给人的专业感差距很大。3.3 图例、标题与子图的组织方式当一个脚本要输出多张图时用subplots组织子图比一张张单独画更高效fig, axes plt.subplots(2, 2, figsize(14, 10)) # 子图1城市分布 df[城市].value_counts().head(8).plot(kindbar, axaxes[0, 0], color#4C72B0) axes[0, 0].set_title(岗位城市分布 Top 8) axes[0, 0].tick_params(axisx, rotation45) # 子图2学历要求 df[学历].value_counts().plot(kindpie, axaxes[0, 1], autopct%1.1f%%) axes[0, 1].set_title(学历要求分布) axes[0, 1].set_ylabel() # 子图3薪资直方图 axes[1, 0].hist(df[salary_avg].dropna(), bins20, color#55A868, edgecolorwhite) axes[1, 0].set_title(薪资分布直方图) axes[1, 0].set_xlabel(薪资K) # 子图4经验要求 df[经验].value_counts().plot(kindbarh, axaxes[1, 1], color#C44E52) axes[1, 1].set_title(经验要求分布) plt.tight_layout() plt.savefig(overview.png, dpi150) plt.show()subplots(2, 2)返回一个 2×2 的 axes 数组用axes[行, 列]索引每个子图。饼图的autopct%1.1f%%自动显示百分比set_ylabel()去掉饼图左侧默认的 Y 轴标签。直方图的bins20控制分组数量edgecolorwhite让柱子之间有分隔线。注意tight_layout()要放在所有子图绘制完成之后、savefig之前调用否则子图标题和轴标签可能重叠。4. 避坑与排查这类项目最容易翻车的 5 个地方4.1 中文显示方块或乱码现象图表上所有中文变成一个个方块或者直接不显示。原因matplotlib 默认字体是 DejaVu Sans不包含中文字形。不同操作系统的中文字体名称不一样Windows 是 SimHeiMac 是 Arial Unicode MS 或 PingFang SCLinux 需要额外安装中文字体。解决在脚本开头设置plt.rcParams[font.sans-serif]并确保字体名称拼写正确。如果设置后仍然不生效用matplotlib.font_manager.findfont(SimHei)检查字体是否被系统识别。Linux 环境下如果找不到中文字体需要先下载字体文件放到 matplotlib 的字体目录再清除字体缓存。4.2 薪资字段解析后大量为 NaN现象parse_salary函数跑完后salary_avg列有超过一半是空值。原因招聘网站上的薪资格式不统一除了「15-25K」之外还有「1.5-2.5万」「200-300元/天」「面议」等多种写法。只处理一种格式必然漏掉其他格式。解决先df[薪资].sample(20)随机抽 20 条看看实际格式有哪些再针对性地写解析规则。对于「面议」这类无法解析的保留为 NaN 并在分析时单独说明占比不要强行填充。4.3 groupby 之后结果为空或报错现象df.groupby(城市)[salary_avg].mean()返回空 Series 或直接报 KeyError。原因最常见的是列名有空格或不可见字符比如城市 和城市在 pandas 看来是两个不同的列。另一个原因是salary_avg列全是 NaNgroupby 后 mean 自动跳过 NaN结果为空。解决用df.columns df.columns.str.strip()去除列名首尾空格。用df[salary_avg].notnull().sum()确认有效数值的数量。如果确实全是 NaN回到上一步检查薪资解析逻辑。4.4 图表保存后空白或只有坐标轴现象plt.savefig()导出的图片打开后是空白的或者只有坐标轴没有数据。原因plt.show()在某些后端会清空当前 figure如果先show()再savefig()保存的就是空图。另外如果在savefig之前调用了plt.close()也会导致保存失败。解决养成习惯——先savefig再show。如果使用 Jupyter Notebook%matplotlib inline模式下show()不会清空 figure但导出脚本时仍然建议保持savefig在前。4.5 词频统计结果里全是无意义的高频词现象词频 Top 20 里出现「负责」「工作」「相关」「以上」这类词真正的技能词被淹没。原因停用词表不完整。招聘 JD 有固定的行文套路大量套话会反复出现。解决先跑一遍不做停用词过滤的词频统计把 Top 50 里明显无意义的词全部加入停用词表再重新统计。这个步骤需要迭代两到三次每次根据结果补充停用词。另外可以设置len(w) 2过滤单字单字在中文里几乎不可能是技能关键词。5. 从 300 行脚本到可复用的分析模板5.1 把重复逻辑抽成函数300 行的脚本里读取数据、清洗薪资、画柱状图这三件事会反复出现。把它们抽成函数下次换一份招聘数据或者换一个岗位关键词只需要改文件路径和列名def load_and_clean(path, salary_col薪资, city_col城市): df pd.read_csv(path, encodingutf-8) df.columns df.columns.str.strip() df[salary_avg] df[salary_col].apply(parse_salary) df df.dropna(subset[salary_avg]) return df def plot_barh(series, title, xlabel, filename, color#4C72B0): fig, ax plt.subplots(figsize(10, 6)) series.plot(kindbarh, axax, colorcolor) ax.set_title(title) ax.set_xlabel(xlabel) for i, v in enumerate(series.values): ax.text(v 0.3, i, f{v:.1f}, vacenter, fontsize9) plt.tight_layout() plt.savefig(filename, dpi150) plt.close()load_and_clean把读取、去空格、解析薪资、删除无效行四步串起来返回干净的 DataFrame。plot_barh封装了横向柱状图的绘制和保存plt.close()释放内存避免批量画图时内存堆积。这两个函数一写主流程就变成了几行调用可读性和可维护性都上来了。5.2 用参数控制分析维度与其每次改代码不如把分析维度做成参数def analyze_by(df, group_col, value_colsalary_avg, min_count5, top_n10): result df.groupby(group_col)[value_col].agg([mean, count]) result result[result[count] min_count] result result.sort_values(mean, ascendingFalse).head(top_n) return result[mean] # 按城市分析 city_result analyze_by(df, 城市) plot_barh(city_result, 各城市平均薪资, 薪资K, by_city.png) # 按学历分析 edu_result analyze_by(df, 学历) plot_barh(edu_result, 各学历平均薪资, 薪资K, by_education.png, color#55A868)analyze_by把分组、过滤、排序、取 Top N 四步封装成一个函数group_col决定分析维度。想按「公司规模」分析就传公司规模想按「行业」分析就传行业。min_count参数控制最小样本量避免小样本组干扰结论。5.3 验证分析结论是否靠谱的三个检查跑完脚本、拿到图表之后别急着下结论。我一般会做三个检查第一检查样本量。如果某个城市的岗位数量只有 3 条它的平均薪资再高也不能说明问题。在图表标题或注释里标注样本量让读者自己判断。第二检查异常值。用df[salary_avg].describe()看最大最小值如果出现 200K 以上的薪资先确认是不是解析错误比如把「20-30万」解析成了「20-30K」。异常值不一定是错误但必须确认来源。第三交叉验证。如果结论是「北京薪资最高」那就单独把北京的数据拉出来看看它的薪资分布是不是真的整体偏高还是被少数高薪岗位拉高了均值。用中位数和均值对比差距大说明分布偏斜严重。# 均值 vs 中位数对比 compare df.groupby(城市)[salary_avg].agg([mean, median, count]) compare[diff] compare[mean] - compare[median] print(compare.sort_values(diff, ascendingFalse).head())diff列是均值和中位数的差值。如果某个城市 diff 很大说明它的薪资分布右偏——少数高薪岗位拉高了均值中位数更能代表大多数岗位的真实水平。这个检查花不了两分钟但能避免你在报告里写出一个经不起追问的结论。我自己的习惯是任何分组统计的结论都要同时看均值和本文还有配套的精品资源点击获取

相关新闻

企业AI转型四步法:从场景选择到规模化落地的避坑指南

企业AI转型四步法:从场景选择到规模化落地的避坑指南

我们部门去年搞了一场AI转型动员会,各部门负责人都到了。讲台上厂商顾问放了一段特别炫酷的演示,大模型在屏幕上秒答问题、自动生成报表,台下几位老总眼里都在放光。三个月后我再去回访,发现那套系统除了在汇报PPT里出现过&#x…

2026/10/1 3:17:26 阅读更多 →
深度可分离UNet:轻量级医学图像分割实战与优化

深度可分离UNet:轻量级医学图像分割实战与优化

简介:这份资源面向医学图像分割方向的开发者与研究者,提供一套基于深度可分离卷积的轻量级UNet实现方案,适合在资源受限的医疗设备上部署,也适合希望入门分割任务、理解模型轻量化思路的中级学习者。压缩包共10个文件,…

2026/10/1 3:17:26 阅读更多 →
C# WinForms学生选课系统实战:从数据库设计到并发控制

C# WinForms学生选课系统实战:从数据库设计到并发控制

简介:这份资源是一套基于C# Windows窗体开发的学生信息管理与选课系统,面向正在学习桌面应用开发、需要课程设计或毕业设计参考的高校学生与初级开发者。系统采用SQL Server数据库与三层架构,包含学生端和教师端两个登录入口,覆盖…

2026/10/1 3:17:26 阅读更多 →

最新新闻

力扣二叉树通关指南:遍历、路径与树形DP高频题复盘

力扣二叉树通关指南:遍历、路径与树形DP高频题复盘

1. 为什么这周我只刷“树”树这个数据结构,在力扣里占的比例比很多人想象的大。我大致统计过,热题 100 里和树直接相关的题目接近四分之一,如果把二叉树相关的动态规划也算进去,数量会更多。更关键的是,树题目的套路相…

2026/10/1 4:35:04 阅读更多 →
淘宝京东商品评论爬虫与情感分析系统:从数据采集到情绪打分

淘宝京东商品评论爬虫与情感分析系统:从数据采集到情绪打分

简介:这份基于Python的淘宝、京东商品评价系统源码包,是为毕业设计或期末大作业场景量身打造的综合型项目。资源覆盖爬虫采集、数据清洗与商品评论情感分析完整链路,既适合计算机相关专业学生直接参考实现,也适合希望快速搭建电商…

2026/10/1 4:35:04 阅读更多 →
界面测试全攻略:从六大维度到移动端物联网实战经验

界面测试全攻略:从六大维度到移动端物联网实战经验

软件测试的圈子里有个很常见的现象:一提界面测试,大家都觉得简单,不就是"点一点、看看好不好看"嘛。可真到项目里一比划,开发说"这个显示有问题",产品说"交互不对",测试自己…

2026/10/1 4:35:04 阅读更多 →
SSM教务系统class文件项目:反推表结构与部署实战

SSM教务系统class文件项目:反推表结构与部署实战

简介:这是一份基于Java开发的轻量级教务查询系统,面向Java后端初学者与SSM整合练习者,对应SpringSpringMVCMybatis的经典三层架构,并融入Shiro安全框架与C3P0连接池,可帮助读者快速理解后台管理、课程与选课等核心流程…

2026/10/1 4:35:04 阅读更多 →
Hadoop+Spark+Python餐饮外卖数据分析与可视化项目全解析

Hadoop+Spark+Python餐饮外卖数据分析与可视化项目全解析

做大数据方向的项目,最容易被卡住的往往不是算法有多难,而是整条链路能不能从零搭起来、跑通、还能交出看得见的东西。今天要拆解的这套HadoopSpark基于Python的餐饮外卖平台数据分析与可视化项目,是我眼中典型的全能型练手选择:一…

2026/10/1 4:35:04 阅读更多 →
阻抗控制与导纳控制:原理、选型与参数整定实战

阻抗控制与导纳控制:原理、选型与参数整定实战

搞力控的人凑一块,聊不到三句就会拐到阻抗控制和导纳控制上。这两个词在协作机器人、力控打磨、装配、医疗康复外骨骼、遥操作这些圈子里出现的频率极高,但真要把它们讲明白、讲到自己能上手调参数的程度,其实挺难的。很多资料一上来就是拉格…

2026/10/1 4:34:04 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →