如何使用pandas统计CSV列中大小写不敏感的精确匹配字符串数量
实现方案
直接使用pandas提供的str.fullmatch()方法即可满足需求,该方法会校验整个单元格内容是否完全匹配目标字符串,天然避免了str.contains()会匹配部分内容的问题:
import pandas as pd # 读取CSV文件 df = pd.read_csv("你的文件路径.csv") target = "Apple" # 统计不区分大小写的精确匹配数量 match_count = df["Fruit"].str.fullmatch(target, case=False, na=False).sum() print(match_count) # 你的示例中输出为2
参数说明
str.fullmatch():要求整个字符串与目标模式完全匹配,不会将包含目标字符串但附带其他内容的单元格计入case=False:关闭大小写区分,Apple、aPpLe、APPLE都会被判定为匹配na=False:空值单元格直接判定为不匹配,避免空值干扰统计结果
低版本pandas兼容方案
如果使用的pandas版本低于1.1.0(该版本首次加入str.fullmatch()),可以通过正则限定字符串首尾的方式实现同等效果:
target = "Apple" match_count = df["Fruit"].str.contains(f"^{target}$", case=False, na=False, regex=True).sum()
内容的提问来源于stack exchange,提问作者samster
相关产品推荐
相关产品推荐

