如何使用pandas在CSV文件指定列中查找特定词汇并统计出现次数
问题原因
原代码中使用的str.find()方法作用是返回目标字符串在每行文本中首次出现的下标位置,无匹配时返回-1,因此只会输出整列的数值结果,无法直接得到出现次数的统计值。
解决方案
分两种常用场景提供修改方案:
场景1:统计包含目标词汇的行数(同一行内重复出现仅算1次)
用str.contains()判断每行是否匹配,结合sum()统计匹配行数:import pandas as pd def count_search_item(searchitem): # 仅读取author列 df = pd.read_csv('data.csv', usecols=["author"]) # 匹配目标词汇,na=False用于处理空值避免报错 match_count = df["author"].str.contains(searchitem, na=False).sum() print(f"包含目标词汇的行数:{match_count}") count_search_item('IMoRT')如需忽略大小写匹配,可以给
str.contains()添加case=False参数。场景2:统计目标词汇的总出现次数(同一行内重复出现按实际次数累加)
用str.count()统计每行匹配次数后求和:import pandas as pd def count_search_item_total(searchitem): df = pd.read_csv('data.csv', usecols=["author"]) # 统计每行出现次数后求和,空值默认返回0 total_count = df["author"].str.count(searchitem).sum() print(f"目标词汇总出现次数:{total_count}") count_search_item_total('IMoRT')
内容的提问来源于stack exchange,提问作者Hiresh Verma
相关产品推荐
相关产品推荐

