Install any skill in seconds. Free to start, no credit card required.
Get Started Free →动态统计Excel总行数,当数据量过大(≥10000行)时自动转换为Parquet格式加速读取,并对指定目标列进行条件筛选、分类汇总与结果导出,适用于超大体积Excel文件的快速读取与统计分析。
.claude/skills/opensensenova-dynamic-large-file-parquet-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -25% | 0% |
> This sub-skill covers one capability of the Excel workflow. For reading/counting/Parquet optimization, see the parent workflow SKILL.md.
Step1 动态读取数据(Parquet加速或常规读取)。
python# 若已加载 sn-da-large-file-analysis 技能,将 Excel 文件转换为 Parquet 格式加速读取 if 'da_large_file_analysis' in globals(): # 假设 sn-da-large-file-analysis 转换后生成了 parquet 文件 parquet_path = 'auto_converted_data.parquet' df = pd.read_parquet(parquet_path) print("已使用 Parquet 格式加速读取大文件。") else: df = pd.read_excel(file_path, sheet_name='Sheet1', header=0) print("文件较小,使用常规方式读取。")
Step2 对目标列进行条件筛选,并按分组列进行分类汇总(包含占比与总计)。
pythontarget_col = '目标列名' # 示例:'危险级别' group_col = '分组列名' # 示例:'分项工程' target_value = 'TARGET_VALUE' # 示例:'★★★★' # 筛选包含特定值的记录 df_filtered = df[df[target_col].astype(str).str.contains(target_value, na=False)].copy() # 分类汇总 result = df_filtered[group_col].value_counts() result_df = pd.DataFrame({ group_col: result.index, '数量': result.values }) # 计算占比并添加总计行 if not result_df.empty: result_df['占比'] = (result_df['数量'] / result_df['数量'].sum()).apply(lambda x: f"{x:.2%}") total_row = pd.DataFrame({ group_col: ['总计'], '数量': [result_df['数量'].sum()], '占比': ['100.00%'] }) result_df = pd.concat([result_df, total_row], ignore_index=True)
Step3 导出汇总结果并生成下载链接。
pythonoutput_path = 'filtered_summary_output.xlsx' # 将分类汇总结果保存为表格文件 result_df.to_excel(output_path, index=False) # 输出下载链接供用户获取 print("数据处理与分类汇总完成。") print(f"下载链接: {output_path}")
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-20 | pass→pass | 13,434 | 11,307 | -16% | 1 | 1 | 0% | 2,396 | 2,824 | +18% | 0 | 0 | — |
case-01 | fail→fail | 8,466 | 9,549 | +13% | 1 | 1 | 0% | 1,543 | 2,258 | +46% | 0 | 0 | — |
case-02 | fail→pass | 12,824 | 10,630 | -17% | 1 | 1 | 0% | 1,751 | 2,349 | +34% | 0 | 0 | — |
case-03 | fail→fail | 11,301 | 6,625 | -41% | 1 | 1 | 0% | 2,194 | 1,628 | -26% | 0 | 0 | — |
case-04 | fail→pass | 8,715 | 4,298 | -51% | 1 | 1 | 0% | 1,611 | 1,442 | -10% | 0 | 0 | — |
case-05 | fail→pass | 3,898 | 5,206 | +34% | 1 | 1 | 0% | 645 | 1,228 | +90% | 0 | 0 | — |
case-06 | fail→fail | 9,674 | 8,995 | -7% | 1 | 1 | 0% | 1,923 | 2,367 | +23% | 0 | 0 | — |
case-07 | pass→pass | 9,863 | 5,736 | -42% | 1 | 1 | 0% | 1,865 | 1,791 | -4% | 0 | 0 | — |
case-08 | pass→pass | 11,397 | 5,746 | -50% | 1 | 1 | 0% | 2,318 | 1,675 | -28% | 0 | 0 | — |
case-09 | fail→pass | 6,483 | 3,201 | -51% | 1 | 1 | 0% | 1,169 | 1,250 | +7% | 0 | 0 | — |
case-10 | fail→fail | 9,150 | 7,646 | -16% | 1 | 1 | 0% | 1,499 | 2,021 | +35% | 0 | 0 | — |
case-11 | pass→pass | 7,956 | 3,958 | -50% | 1 | 1 | 0% | 1,527 | 1,204 | -21% | 0 | 0 | — |
case-12 | pass→pass | 10,534 | 7,560 | -28% | 1 | 1 | 0% | 1,747 | 2,111 | +21% | 0 | 0 | — |
case-13 | fail→fail | 22,482 | 1,636 | -93% | 1 | 1 | 0% | 1,967 | 902 | -54% | 0 | 0 | — |
case-14 | fail→pass | 7,669 | 3,373 | -56% | 1 | 1 | 0% | 1,269 | 950 | -25% | 0 | 0 | — |
case-15 | fail→pass | 5,841 | 1,892 | -68% | 1 | 1 | 0% | 1,120 | 822 | -27% | 0 | 0 | — |
case-16 | fail→pass | 6,600 | 1,935 | -71% | 1 | 1 | 0% | 1,110 | 971 | -13% | 0 | 0 | — |
case-17 | fail→pass | 13,645 | 1,821 | -87% | 1 | 1 | 0% | 1,987 | 926 | -53% | 0 | 0 | — |
case-18 | pass→pass | 4,856 | 3,817 | -21% | 1 | 1 | 0% | 835 | 1,135 | +36% | 0 | 0 | — |
case-19 | pass→pass | 17,456 | 13,305 | -24% | 1 | 1 | 0% | 3,439 | 3,070 | -11% | 0 | 0 | — |
case-21 | pass→pass | 9,224 | 8,821 | -4% | 1 | 1 | 0% | 1,935 | 2,359 | +22% | 0 | 0 | — |
case-22 | pass→pass | 15,196 | 11,725 | -23% | 1 | 1 | 0% | 1,690 | 2,522 | +49% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.