本文へ移動
cccskills
無料GitHub で公開

excel-basic-statistics-and-routing

对多Sheet Excel文件进行基础统计与,支持按条件筛选计算均值,以及从指定行区间提取数据去重求和,并生成结果文件与下载链接。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Skill Steps

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

Step1 筛选指定分组数据,将目标列转换为数值类型并计算平均值。

group_col = '班级'  # 占位示例
target_group_value = '358'  # 占位示例
target_cols = ['总分', '理数']  # 占位示例

if group_col not in df_analysis.columns:
    raise ValueError(f"数据中缺少'{group_col}'列。")
df_analysis[group_col] = df_analysis[group_col].astype(str)
filtered_df = df_analysis[df_analysis[group_col] == target_group_value]

avg_scores = {}
for col in target_cols:
    if col not in filtered_df.columns:
        raise ValueError(f"数据中缺少'{col}'列。")
    try:
        filtered_df[col] = pd.to_numeric(filtered_df[col], errors='raise')
        avg_scores[f'平均{col}'] = filtered_df[col].mean()
    except Exception as e:
        raise ValueError(f"列'{col}'无法转换为数值类型: {str(e)}")

output("筛选结果统计: " + str(avg_scores))

Step2 对于小文件,从特定 Sheet 的指定行区间提取目标字段,去重后计算总和。

unique_components = {}
total_power = 0

if total_rows < 10000:
    target_sheet = 'Sheet2'  # 占位示例
    df_sheet2 = pd.read_excel(file_path, sheet_name=target_sheet)
    extracted_data = []
    
    # 提取区间1 (例如 21-28行)
    for i in range(21, 29):
        if i < len(df_sheet2):
            row = df_sheet2.iloc[i]
            component = row.iloc[0]
            power = row.iloc[6]
            if pd.notna(component) and pd.notna(power):
                try:
                    extracted_data.append({'Component': component, 'Value': float(power)})
                except:
                    pass
    
    # 提取区间2 (例如 51-58行)
    for i in range(51, 59):
        if i < len(df_sheet2):
            row = df_sheet2.iloc[i]
            component = row.iloc[0]
            power = row.iloc[1]
            if pd.notna(component) and pd.notna(power):
                try:
                    extracted_data.append({'Component': component, 'Value': float(power)})
                except:
                    pass
    
    # 合并并去重 (保留首次出现的值)
    for item in extracted_data:
        name = item['Component']
        val = item['Value']
        if name not in unique_components:
            unique_components[name] = val
    
    total_power = sum(unique_components.values())

Step3 将计算结果、筛选数据和统计信息保存为Excel文件,并生成本地下载链接。

import os

# 保存区间提取与汇总结果
if total_rows < 10000:
    result_df = pd.DataFrame([
        {'Component Name': name, 'Est. Power (kW)': power} 
        for name, power in unique_components.items()
    ])
    total_row = pd.DataFrame([{'Component Name': '合计', 'Est. Power (kW)': total_power}])
    result_df = pd.concat([result_df, total_row], ignore_index=True)
    
    output_path_power = "output_power_sum.xlsx"
    result_df.to_excel(output_path_power, index=False)
    output(f"功率计算结果已保存。下载链接: file://{os.path.abspath(output_path_power)}")

# 保存筛选与统计结果
output_path_analysis = "output_analysis_result.xlsx"
with pd.ExcelWriter(output_path_analysis, engine='openpyxl') as writer:
    filtered_df.to_excel(writer, sheet_name="筛选数据", index=False)
    pd.DataFrame([avg_scores]).to_excel(writer, sheet_name="统计信息", index=False)

output(f"分析完成,结果已保存。下载链接: file://{os.path.abspath(output_path_analysis)}")

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

对两类分类数据进行对比分析,统计数量差异与比例关系并生成可视化图表。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

提取指定类别列并统计各类别数量与占比,生成高分辨率的柱状图、饼图等组合可视化报告,适用于分类数据的分布情况分析。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

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

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

根据数据规模动态选择处理策略。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

动态统计Excel总行数,当数据量过大(≥10000行)时自动转换为Parquet格式加速读取,并对指定目标列进行条件筛选、分类汇总与结果导出,适用于超大体积Excel文件的快速读取与统计分析。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7562026年10月9日 更新

OpenSenseNova のスキルをすべて見る

このスキルの問題を報告する