多字典同键值求和:目录下CSV文件列词频汇总需求
跨CSV文件词频统计累加方案
下面提供两种简洁的实现方式,完成所有CSV文件第4列的词频总和统计:
方法1:字典手动累加
逻辑清晰直观,适合偏好基础字典操作的场景:
import os import pandas as pd directory = "你的目标目录路径" ext = ".csv" total_counts = {} # 存储最终累加结果的全局字典 for file in os.scandir(directory): if file.path.endswith(ext): # 读取CSV并提取第4列 df = pd.read_csv(file) klasifikacija = df.iloc[:, 4] # 统计当前文件的词频并转字典 dict_napake = dict(klasifikacija.value_counts()) # 累加至全局字典 for word, count in dict_napake.items(): if word in total_counts: total_counts[word] += count else: total_counts[word] = count # 打印最终结果 for word, total in total_counts.items(): print(f"{word}: {total}")
方法2:Pandas Series累加(推荐)
利用Pandas内置方法自动对齐键值,代码更简洁,无需手动处理键的存在性判断:
import os import pandas as pd directory = "你的目标目录路径" ext = ".csv" total_counts = pd.Series(dtype='int64') # 初始化空Series用于累加 for file in os.scandir(directory): if file.path.endswith(ext): # 仅读取第4列,节省内存(可选优化) df = pd.read_csv(file, usecols=[4]) klasifikacija = df.iloc[:, 0] # 因只读取一列,索引变为0 napake = klasifikacija.value_counts() # 自动对齐键并累加,fill_value=0处理不存在的键 total_counts = total_counts.add(napake, fill_value=0) # 转换为整数类型并输出 total_counts = total_counts.astype(int) print(total_counts)
额外优化提示
- 若CSV文件体积较大,使用
usecols=[4]只读取目标列,能显著降低内存占用。 - 如果需要将结果保存为CSV文件,可添加
total_counts.to_csv("总词频统计.csv")。
内容的提问来源于stack exchange,提问作者CH4
相关产品推荐
相关产品推荐

