如何用Python实现数字倒排索引?含GCF_NO的CSV文件处理指导
用Python实现CSV数据的数字倒排索引
这里的倒排索引指的是建立WP_NO(数字)到对应GCF_NO列表的映射,下面两种方法适合Python新手:
方法1:用内置csv模块(基础入门)
适合想理解底层逻辑的新手,无需额外安装库:
import csv # 初始化倒排索引字典,键为WP_NO,值为对应的GCF_NO列表 inverted_index = {} # 打开CSV文件(替换成你的文件路径) with open("your_file.csv", mode="r", encoding="utf-8") as file: reader = csv.DictReader(file) # 遍历每一行数据 for row in reader: wp_no = row["WP_NO"] gcf_no = row["GCF_NO"] # 如果WP_NO不在字典里,先创建空列表 if wp_no not in inverted_index: inverted_index[wp_no] = [] # 将当前GCF_NO添加到对应WP_NO的列表中 inverted_index[wp_no].append(gcf_no) # 打印倒排索引结果 for wp, gcfs in inverted_index.items(): print(f"WP_NO {wp}: 对应的GCF_NO列表 -> {gcfs}")
方法2:用pandas库(高效简洁)
如果数据量较大,pandas会更高效,需先安装:pip install pandas
import pandas as pd # 读取CSV文件(替换成你的文件路径) df = pd.read_csv("your_file.csv") # 按WP_NO分组,把对应的GCF_NO聚合为列表,转成字典就是倒排索引 inverted_index = df.groupby("WP_NO")["GCF_NO"].apply(list).to_dict() # 打印结果 for wp, gcfs in inverted_index.items(): print(f"WP_NO {wp}: 对应的GCF_NO列表 -> {gcfs}")
补充说明
- 两种方法最终都会得到一个字典:键是
WP_NO的数字值(如果CSV里是字符串类型数字,可自行用int()转换),值是所有关联的GCF_NO组成的列表 - 若需把结果保存为新文件,可通过
csv.writer或pandas的to_csv方法实现
内容的提问来源于stack exchange,提问作者Muhammad Zohaib Khan
相关产品推荐
相关产品推荐

