如何匹配字典键与DataFrame列条目正确填充对应值
多文档词频统计字典转标准DataFrame实现方案
直接基于pandas实现即可,全程以预设检索词表为匹配基准,不会出现数值错位问题,操作步骤如下:
- 提前固定预设待检索词列表,作为结果第一列的唯一匹配基准
- 将原始的「文件名: 词频字典」结构直接传入pandas的DataFrame构造器,这一步会自动将文件名映射为列名,已匹配到的词语自动填充对应频次,未出现的位置暂时标记为空值
- 用预设词表对DataFrame的行索引做重对齐,未匹配到词语的位置统一填0,最后将行索引转为普通的
words列即可得到目标结构
完整可运行代码
import pandas as pd # 预设待检索词列表,所有匹配以此为基准 target_words = ["data", "digital", "wifi"] # 文本挖掘得到的原始分文件词频统计结果 raw_freq = { "txt_file_1": {"data": 2, "digital": 1}, "txt_file_2": {"data": 3} } # 转换为初始DataFrame df = pd.DataFrame(raw_freq) # 按预设词表对齐行,缺失值补0,最后把索引转为words列 df = df.reindex(target_words, fill_value=0).reset_index(names="words")
匹配准确性说明
匹配逻辑完全基于reindex的精确键匹配实现:逐行将预设词和各文件统计字典的键做等值匹配,匹配成功则读取对应计数值填入单元格,匹配失败(即该词在文件中未出现)则直接填0,全程不会出现词语和计数错位的问题。
运行后输出的结果和目标表结构完全一致:
words txt_file_1 txt_file_2 0 data 2 3 1 digital 1 0 2 wifi 0 0
内容的提问来源于stack exchange,提问作者MasseAlarm
相关产品推荐
相关产品推荐

