如何使用Pandas统计指定列中特定单词的出现次数?
用Pandas统计CSV中指定名字的重复次数
嘿,这个需求用Pandas分分钟就能搞定!我来给你写个靠谱的脚本,顺便解释下每一步怎么回事~
完整可行代码
import pandas as pd # 读取CSV文件,仅加载需要的"names"列(可选,优化性能) df = pd.read_csv('csv.csv', usecols=['names']) # 统计"John"的出现次数 john_count = df['names'].value_counts().get('John', 0) # 输出结果 print(john_count) # 运行后会输出你想要的3
代码解释
- 首先得导入Pandas库,这是处理CSV数据的基础操作;
pd.read_csv里的usecols=['names']是可选但推荐的操作——只加载你需要的列,处理大文件时能节省不少内存;value_counts()会自动统计列中每个唯一值的出现次数,返回一个键值对形式的Series;用get('John', 0)可以安全获取"John"的次数,即便CSV里没有"John"也会返回0,不会报错;- 最后打印结果就是你要的3啦。
另一种实现方式(布尔索引)
如果你习惯用筛选行的方式,也可以这么写:
john_count = len(df[df['names'] == 'John'])
这个逻辑是先筛选出所有names列等于"John"的行,再计算这些行的数量,结果和上面完全一致。
注意事项
- 确保CSV文件路径正确:如果文件不在脚本的当前目录,要写完整路径,比如Windows下用
r'C:\Users\你的用户名\csv.csv',Linux/Mac下用'/home/你的用户名/csv.csv'; - 注意大小写敏感:如果CSV里的名字是小写的"john",上面的代码会返回0。如果需要忽略大小写统计,可以改成:
john_count = df['names'].str.lower().value_counts().get('john', 0)
内容的提问来源于stack exchange,提问作者ananvodo
相关产品推荐
相关产品推荐

