用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/OpenSenseNova/SenseNova-Skills --skill multi-file-excel-parquet-analysis命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Base-layer skill for the SenseNova-Skills project, providing low-level APIs for image generation, recognition (VLM), and text optimization (LLM). This skill does not preprocess inputs; it only calls backend services and returns results. This skill is not user-facing and is intended for upper-layer skills only.
Standard and fast PPT pipeline. All LLM / VLM / T2I calls are wrapped in a single CLI entry (scripts/run_stage.py). The main agent's job is simple: emit ONE shell command per stage, never write loops, never write prompts. Standard mode plans thoroughly with a three-sample deck preview checkpoint (three concatenated deck images plus a preview URL), web research, image search, and user-selected final output format (PPTX or PDF) for polished, delivery-ready presentations. Fast mode builds a complete draft immediately with autonomous decisions, then provides structured refinement suggestions so the user can iterate quickly. Supports AI-generated infographics (U1) for diagrams and flowcharts, web image search (Serper) for real photos, and ECharts for data charts.
用于用户请求深度研究、系统性研究、竞品分析、方案对比、趋势分析或事实核查时。**遇到以下任一情况就主动使用本 skill,不要自行搜几条就回答**:①用户出现触发词:深度研究 / 深度调研 / 深入研究 / 全面研究 / 系统研究 / 调研 / 调查 / 尽调 / 行业研究 / 市场研究 / 竞品分析 / 政策研究 / 技术研究 / 趋势研究 / 事实核查 / 写一份研究报告 / 调研报告 / 深度报告 / research / deep research;②请求需要跨多来源取证、多维度对比、交叉验证才能给出可靠结论;③用户要求产出报告、白皮书、行业分析或尽调文档;④话题涉及最新政策/市场/产品/价格/法规,需要系统核查。明确要求核验来源的单点事实可走 quick;无核验要求的简单常识问答不使用。模糊或宽泛的"研究/了解一下 X"也优先触发。仅不用于:一句话摘要、已给定单一来源的整理、纯文字润色改写。
基于 SOC 职业分类
正在显示 SKILL.md
| name | multi-file-excel-parquet-analysis |
| description | 读取多 Sheet Excel 文件并统计规模,支持大文件向 Parquet 格式转换、分类数据统计及可视化报告生成。 |
Note: This sub-skill covers one step of the Excel analysis workflow. For the full pipeline (file reading, row counting, large-file optimization, export), see the parent workflow SKILL.md.
Step1 读取 Excel 文件,遍历所有 Sheet 统计行数,评估数据规模。
import pandas as pd
import os
file_path = "input_data.xlsx" # 替换为实际文件路径
if not os.path.exists(file_path):
print(f"Error: 文件 {file_path} 不存在")
else:
# 获取所有 sheet 名称
xl = pd.ExcelFile(file_path)
sheet_names = xl.sheet_names
print("Sheet 列表:", sheet_names)
total_rows = 0
for sheet in sheet_names:
# 仅读取第一列以快速统计行数,避免大文件内存溢出
df_tmp = pd.read_excel(file_path, sheet_name=sheet, usecols=[0])
row_count = len(df_tmp)
total_rows += row_count
print(f"Sheet: {sheet}, 行数: {row_count}")
print(f"总行数汇总: {total_rows}")
Step2 读取转换后的数据,执行分类统计分析,计算频数与占比。
import pandas as pd
# 读取 Parquet 文件
df_analyzed = pd.read_parquet(output_parquet)
# 定义目标统计列(如 '剪裁结果'、'状态' 等)
target_col = '剪裁结果'
if target_col in df_analyzed.columns:
# 统计各分类数量及占比
counts = df_analyzed[target_col].value_counts()
percent = df_analyzed[target_col].value_counts(normalize=True) * 100
# 构建统计表格并添加总计行
summary_df = pd.DataFrame({
'分类': counts.index,
'数量': counts.values,
'占比(%)': percent.values.round(2)
})
# 添加总计行
total_row = pd.DataFrame([['总计', summary_df['数量'].sum(), 100.0]], columns=summary_df.columns)
summary_df = pd.concat([summary_df, total_row], ignore_index=True)
print("统计摘要:\n", summary_df)
else:
print(f"未找到目标列: {target_col}")
Step3 生成可视化饼图并保存分析报告,提供结果下载链接。
import matplotlib.pyplot as plt
# 配置中文字体(实战技巧:防止图表乱码)
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
if target_col in df_analyzed.columns:
# 绘制饼图
plt.figure(figsize=(10, 7), dpi=100)
plot_data = df_analyzed[target_col].value_counts()
plt.pie(plot_data, labels=plot_data.index, autopct='%1.1f%%', startangle=90, colors=plt.cm.Paired.colors)
plt.title(f'{target_col} 分布占比')
# 保存图表
chart_output = "analysis_pie_chart.png"
plt.savefig(chart_output, bbox_inches='tight')
# 保存统计结果为 Excel
report_output = "analysis_report.xlsx"
summary_df.to_excel(report_output, index=False)
print(f"分析图表已保存: {chart_output}")
print(f"统计表格已保存: {report_output}")
# 生成下载链接(用于报告展示)
print(f"下载链接: {os.path.abspath(report_output)}")