Skills

Chart Embedded Export

从结构化数据中提取分类分布执行清洗与统计,生成多维度交叉分析、高分辨率对比图表及包含下载链接的完整分析报告,适用于大文件处理与嵌入式可视化场景。

Install

npx skills add OpenSenseNova/SenseNova-Skills --skill chart-embedded-export -g -a claude-code -y
Category
Engineering
Updated
6d ago
License
MIT
Context cost
Lightabout 850 tokens
Runs scripts
No, instructions only

What it does

从结构化数据中提取分类分布执行清洗与统计,生成多维度交叉分析、高分辨率对比图表及包含下载链接的完整分析报告,适用于大文件处理与嵌入式可视化场景。

Skill Steps

This sub-skill covers one capability of the Excel workflow. For reading/counting/Parquet optimization, see the parent workflow SKILL.md.

Step1 执行数据清洗,处理合并单元格,使用正则表达式清理文本,并建立分类映射函数骨架。

target_col = '分类字段'
value_col = '数值字段'

# 合并单元格处理 (向下填充还原)
df[target_col] = df[target_col].ffill()

# 数据清洗:正则去除特殊字符、去空、类型转换
df[target_col] = df[target_col].astype(str).str.replace(r'[^\w\s]', '', regex=True).str.strip()
df[value_col] = pd.to_numeric(df[value_col], errors='coerce')
df = df.dropna(subset=[target_col, value_col])

# 分类映射函数骨架
def map_category(val):
    if 'A类特征' in str(val): return 'Category_A'
    elif 'B类特征' in str(val): return 'Category_B'
    return 'Other'

df['Mapped_Category'] = df[target_col].apply(map_category)

Step2 进行多维度统计与交叉分析,计算分类占比并生成包含总计行的交叉表。

group_col = '分组字段'

# value_counts 统计与占比计算
counts = df[group_col].value_counts()
proportions = (counts / counts.sum() * 100).round(2)

# 交叉分析 (crosstab),包含总计行
cross_analysis = pd.crosstab(df[group_col], df['Mapped_Category'], margins=True, margins_name='总计')

# 多维度聚合统计
stats = df.groupby(group_col)[value_col].agg(['sum', 'mean', 'min', 'max']).round(2)

Step3 执行业务逻辑计算(如多维度评分与分级),将结果导出为 Excel 并生成沙盒下载链接。

# 多维度评分/分级算法结构
df['Score'] = df[value_col] * 1.5  # 示例计算逻辑
df['Grade'] = pd.cut(df['Score'], bins=[0, 50, 80, 100], labels=['C', 'B', 'A'])

# 导出结构化结果
output_excel_path = 'analysis_result.xlsx'
df.to_excel(output_excel_path, index=False)

# 生成可点击的下载链接
print(f"分析结果已保存,下载链接:[下载结果数据](sandbox:{output_excel_path})")

Step4 配置中英文字体,生成包含饼图、柱状图、箱线图和直方图的综合可视化面板,并导出高分辨率双格式图片。

output_img_path = 'comprehensive_chart.png'

# 中英文字体配置与图表美化
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans', 'WenQuanYi Zen Hei']
plt.rcParams['axes.unicode_minus'] = False

fig, axes = plt.subplots(2, 2, figsize=(15, 12))
fig.suptitle('多维度数据分布综合分析', fontsize=16, fontweight='bold')
Read the whole SKILL.md on GitHub

More in Engineering