# Category Filtering And Difficulty Analysis

对Excel数据进行自定义分类统计、交叉分析与可视化，并基于多维度指标（如文本长度、术语密度、正则匹配等）进行综合评分与分级，适用于多类别数据分布统计及文本内容难度/质量评估场景。

- Repository: https://github.com/OpenSenseNova/SenseNova-Skills (6002 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add OpenSenseNova/SenseNova-Skills --skill category-filtering-and-difficulty-analysis -g -a claude-code -y`
Codex: `npx skills add OpenSenseNova/SenseNova-Skills --skill category-filtering-and-difficulty-analysis -g -a codex -y`
Cursor: `npx skills add OpenSenseNova/SenseNova-Skills --skill category-filtering-and-difficulty-analysis -g -a cursor -y`
Gemini CLI: `npx skills add OpenSenseNova/SenseNova-Skills --skill category-filtering-and-difficulty-analysis -g -a gemini-cli -y`

## Description

对Excel数据进行自定义分类统计、交叉分析与可视化，并基于多维度指标（如文本长度、术语密度、正则匹配等）进行综合评分与分级，适用于多类别数据分布统计及文本内容难度/质量评估场景。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

## Skill Steps

### Step1 加载数据与环境配置
```python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import re

# 配置中文字体，确保图表正常显示
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans', 'WenQuanYi Zen Hei']
plt.rcParams['axes.unicode_minus'] = False

def load_excel_data(file_path: str, skip_rows: int = 2):
    """读取并加载Excel文件中的数据，跳过标题行以获取原始数据"""
    # 技巧：处理合并单元格可使用 df.ffill() 等方法
    df = pd.read_excel(file_path, skiprows=skip_rows)
    return df
```

### Step2 定义分类映射函数骨架
```python
def categorize_data(item: str) -> str:
    """将具体项归类到大类中（分类映射函数骨架）"""
    if pd.isna(item):
        return '未知'
    if item in ['类别A1', '类别A2', '类别A3']:
        return '大类A'
    elif item in ['类别B1', '类别B2']:
        return '大类B'
    else:
        return '其他'
```

The rest: https://github.com/OpenSenseNova/SenseNova-Skills/blob/HEAD/skills/sn-da-excel-workflow/capability/excel-data-filtering/category-filtering/SKILL.md
