You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计多个CSV文件指定列的唯一值数量并生成汇总表?

统计多个CSV文件指定列的唯一值数量并生成汇总DataFrame

实现思路

  1. 批量匹配目标CSV文件
  2. 仅读取需要统计的列('b')以提升效率
  3. 统计每列的唯一值数量
  4. 收集结果并转换为指定格式的Pandas DataFrame

完整代码

import pandas as pd
from glob import glob

# 匹配目标路径下的所有CSV文件,可根据实际路径调整(比如'./data/*.csv')
csv_files = glob('file_*.csv')

# 初始化列表存储每个文件的统计结果
results = []
for file_path in csv_files:
    # 仅读取列'b',避免加载无关数据节省内存
    df = pd.read_csv(file_path, usecols=['b'])
    # 统计列'b'的唯一值数量
    unique_count = df['b'].nunique()
    results.append({'filename': file_path, 'count': unique_count})

# 转换为目标格式的DataFrame,并按文件名排序(可选)
summary_df = pd.DataFrame(results).sort_values('filename').reset_index(drop=True)

# 输出结果
print(summary_df)

关键说明

  • 批量文件匹配:使用glob模块可以快速匹配符合命名规则的CSV文件,无需手动逐个指定文件名
  • 高效读取:通过usecols=['b']仅加载需要的列,在处理大文件时能大幅减少内存占用和读取时间
  • 快速统计:nunique()是Pandas专门用于统计唯一值数量的高效方法,比len(df['b'].unique())性能更优
  • 结果整理:最后通过sort_values按文件名排序,保证结果顺序清晰(可根据需求省略)

输出示例

运行代码后会得到如下格式的DataFrame:

filename  count
0  file_00.csv    998
1  file_01.csv    997
2  file_02.csv    996
...

内容的提问来源于stack exchange,提问作者Arik Hazan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:41:20