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

多字典同键值求和:目录下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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:36:32