如何统计Pandas DataFrame中指定关键词子集的共同出现次数?
统计关键词共同出现次数的简便方法
步骤1:将所有单元格转换为集合列表
先把DataFrame的所有单元格提取为一维序列,再将每个单元格的分号分隔内容转成集合:
import pandas as pd # 替换为你的DataFrame对象或读取方式 df = pd.read_excel("your_data_file.xlsx") # 提取所有非空单元格并转为一维序列 all_cells = df.stack().dropna() # 按分号分割单元格内容并转为集合,注意分号后是否带空格,根据实际调整分隔符 set_list = all_cells.apply(lambda cell: set(cell.split('; '))).tolist()
步骤2:定义目标关键词集合
把要查询的关键词做成集合,无需考虑顺序:
# 替换为你需要查询的关键词组合 target_keywords = {'computation theory', 'critical infrastructure'}
步骤3:统计符合条件的集合数量
遍历集合列表,检查目标集合是否是每个单元格集合的子集,求和得到次数:
occurrence_count = sum(1 for s in set_list if target_keywords.issubset(s)) print(f"共同出现次数:{occurrence_count}")
优化提示
如果DataFrame规模较大,或需要多次查询不同关键词组合,可以提前保存set_list,避免重复处理单元格内容,提升后续查询效率。
内容的提问来源于stack exchange,提问作者TheMaffGuy
相关产品推荐
相关产品推荐

