跳到正文
cccskills
免费在 GitHub 公开

excel-basic-statistics-and-routing

Calculate averages for selected groups in Excel and sum items extracted from specified row ranges after removing duplicates. Save filtered records, summary statistics, and item totals as Excel files with local download links.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

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

集成工具Excel
查看安装方法

适用场景

  • Calculate average scores for a selected class
  • Sum equipment power values without duplicate items
  • Export filtered records and summary statistics

包含的文件(1)

  • SKILL.md3.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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)}")

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Compare counts and shares for two categories in Excel data. The skill cleans the selected columns, calculates differences and percentages, and produces a summary spreadsheet plus bar and pie charts.

中文简介正在准备中。当前显示英语简介。

  • Comparing counts for two categories
  • Visualizing category shares
  • Cleaning merged-cell data before counting
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

Analyze Excel data using custom categories, count distributions, and compare groups with charts. Score text using its length, technical terms, numbers, and selected complex concepts, then visualize difficulty levels and the relationship between text length and scores.

中文简介正在准备中。当前显示英语简介。

  • Summarize Excel records using custom categories
  • Compare category distributions across groups
  • Score and grade text using adjustable rules
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

Count categories in a chosen data column after removing missing values and placeholder labels. Calculate each category’s share and create high-resolution charts combining counts, percentages, pie charts, and horizontal bars for distribution reports.

中文简介正在准备中。当前显示英语简介。

  • Compare record counts across categories
  • Show category shares with pie and bar charts
  • Exclude placeholder labels before counting
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

Clean category and numeric fields in structured data, compare groups with counts and cross-tabulations, and produce charts, Excel results, and a Markdown report. Export visuals as high-resolution PNG and SVG files for use in reports.

中文简介正在准备中。当前显示英语简介。

  • Compare category distributions across groups
  • Clean category labels and fill merged-cell gaps
  • Export analysis results to Excel
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

Filter Excel data using candidate column names, RGB color values, text prefixes, and regular expressions, which match text patterns. Calculate totals and averages, then export results to Excel with highlighted rows and a download link.

中文简介正在准备中。当前显示英语简介。

  • Filtering rows by RGB values or identifier prefixes
  • Converting text to numbers and calculating totals or averages
  • Extracting matching commands with their identifiers and descriptions
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

Filter rows from Excel or previously converted Parquet files, a format designed for efficient data storage. Summarize matching records by group with counts, percentages, and totals, then export the summary to Excel.

中文简介正在准备中。当前显示英语简介。

  • Count records containing a specified risk level by work category
  • Calculate group shares among matching records
  • Summarize large datasets already converted to Parquet
OpenSenseNova/SenseNova-Skills57992026年10月9日 更新

查看 OpenSenseNova 的全部技能

报告此技能的问题