如何将词频CSV文件转换为指定格式的Python字典?
解决方案
方法一:使用Pandas快速转换
利用Pandas的set_index()和to_dict()方法,直接将word列设为索引后转换为目标格式字典:
import pandas as pd data = pd.read_csv("./unigram_freq.csv") word_freq = data.set_index('word')['count'].to_dict()
说明
set_index('word'):将CSV中的word列设置为DataFrame的索引['count']:提取词频列to_dict():将索引(单词)与对应词频值转换为键值对字典
方法二:使用原生CSV模块(适合大文件)
如果担心33万行的大文件占用过多内存,可以用Python原生csv模块逐行读取构建字典,内存效率更高:
import csv word_freq = {} with open('./unigram_freq.csv', 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: # 将count转为整数(CSV读取的默认是字符串) word_freq[row['word']] = int(row['count'])
原代码问题分析
你之前的代码用字典推导式把列名作为键,列的所有值组成的列表作为值,所以得到的是包含两个键的字典,而非每个单词对应词频的结构。
内容的提问来源于stack exchange,提问作者Domenic Urso
相关产品推荐
相关产品推荐

