如何使用Python获取CSV文件指定列中出现频率最高的值
获取CSV指定列最高频率值的实现方案
下面提供两种常用的实现方式,你可以根据自己的使用场景选择:
方法1:使用Python标准库(无需安装额外依赖)
仅用Python自带的csv和collections模块就能实现,适合不想安装第三方包的场景:
import csv from collections import Counter # 替换为你自己的CSV文件实际路径 csv_file_path = "./test.csv" # 替换为你要统计的目标列名 target_column = "value" # 读取指定列的所有值 col_values = [] with open(csv_file_path, "r", encoding="utf-8") as f: csv_reader = csv.DictReader(f) for row in csv_reader: col_values.append(row[target_column]) # 取出现频率最高的第一个值 most_frequent_val = Counter(col_values).most_common(1)[0][0] print(f"频率最高的值为:{most_frequent_val}")
方法2:使用Pandas(数据处理场景更常用)
如果已经安装了Pandas库,代码会更简洁:
import pandas as pd # 替换为你自己的CSV文件实际路径 csv_file_path = "./test.csv" # 替换为你要统计的目标列名 target_column = "value" df = pd.read_csv(csv_file_path) # 取众数(出现频率最高的值)的第一个结果 most_frequent_val = df[target_column].mode()[0] print(f"频率最高的值为:{most_frequent_val}")
- 如果目标列有多个值出现频率同为最高,两种方法的返回结果都会包含所有并列最高的数值,可以根据自己的需求调整取值逻辑即可。
- 你给出的示例数据运行上述代码,都会输出结果
y,符合你的预期。
内容的提问来源于stack exchange,提问作者zead seam
相关产品推荐
相关产品推荐

