Skip to content
cccskills
FreePublished on GitHub

multi-file-excel-parquet-analysis

Count rows across Excel sheets to assess data size, then analyze an existing Parquet file, a format for storing tabular data. Calculate category counts and percentages, and save the results as an Excel summary and a pie chart.

OriginalShow the original description

读取多 Sheet Excel 文件并统计规模,支持大文件向 Parquet 格式转换、分类数据统计及可视化报告生成。

Works withExcel

Run score Not tested

See how to install

Good for

  • Counting rows across every sheet in an Excel workbook
  • Calculating category counts and percentages from Parquet data
  • Creating a pie chart of category proportions
  • Exporting a category summary to Excel

Files included (1)

  • SKILL.md3.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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-Skills5.9KUpdated Oct 9, 2026

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-Skills5.9KUpdated Oct 9, 2026

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-Skills5.9KUpdated Oct 9, 2026

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-Skills5.9KUpdated Oct 9, 2026

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-Skills5.9KUpdated Oct 9, 2026

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-Skills5.9KUpdated Oct 9, 2026

See all skills by OpenSenseNova

Report a problem with this skill