跳到主要内容
知仓学习社ZHICANG

dynamic-large-file-parquet-analysis

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

不碰外部(只输出文字)无严重或高危命中OpenSenseNova/SenseNova-Skills

它会碰到什么

扫了多少1 个文本文件,2 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Skill Steps

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

Step1 动态读取数据(Parquet加速或常规读取)。

# 若已加载 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 对目标列进行条件筛选,并按分组列进行分类汇总(包含占比与总计)。

target_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 导出汇总结果并生成下载链接。

output_path = 'filtered_summary_output.xlsx'

# 将分类汇总结果保存为表格文件
result_df.to_excel(output_path, index=False)

# 输出下载链接供用户获取
print("数据处理与分类汇总完成。")
print(f"下载链接: {output_path}")

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。