如何用Python实现CSV文件第1列与列2、列3的逐行数值大小比较
实现方案
以下提供两种常用实现方式,可根据你的使用场景选择:
方法1:使用标准库csv模块(无额外依赖)
不需要安装第三方库,直接调用Python内置模块即可实现,适合轻量使用场景:
import csv # 替换为你本地CSV文件的实际路径 csv_path = "your_data.csv" with open(csv_path, mode='r', encoding='utf-8') as f: reader = csv.reader(f) # 如果CSV第一行是表头,保留下面这行跳过表头;没有表头直接注释该行即可 next(reader) for row_index, row in enumerate(reader, start=1): # 将三列值转换为浮点型,若确认都是整数可替换为int()避免精度问题 col1 = float(row[0]) col2 = float(row[1]) col3 = float(row[2]) # 以下是比较逻辑示例,可按需修改为你需要的规则 print(f"第{row_index}行比较结果:") # 第1列和第2列比较 if col1 > col2: print(f" 第1列值{col1} > 第2列值{col2}") elif col1 == col2: print(f" 第1列值{col1} = 第2列值{col2}") else: print(f" 第1列值{col1} < 第2列值{col2}") # 第1列和第3列比较 if col1 > col3: print(f" 第1列值{col1} > 第3列值{col3}") elif col1 == col3: print(f" 第1列值{col1} = 第3列值{col3}") else: print(f" 第1列值{col1} < 第3列值{col3}")
方法2:使用pandas库(适合批量数据处理)
如果后续还需要对数据做其他统计、筛选操作,用pandas实现更简洁,使用前先执行pip install pandas安装依赖:
import pandas as pd # 替换为你本地CSV文件的实际路径,有表头就去掉header=None参数 df = pd.read_csv("your_data.csv", header=None) # 批量生成比较结果列,True代表条件成立,False代表不成立 df['第1列大于第2列'] = df[0] > df[1] df['第1列大于第3列'] = df[0] > df[2] # 打印所有行的原始数据+比较结果 print(df) # 如果需要自定义逐行处理逻辑,可使用apply方法 def custom_compare(row): col1, col2, col3 = row[0], row[1], row[2] # 示例:返回三个值从大到小的排序结果,可按需修改为你的逻辑 return sorted([col1, col2, col3], reverse=True) df['三列降序排序'] = df.apply(custom_compare, axis=1) print(df)
注意事项
- 请提前确认CSV三列均为可转换为数值的内容,存在非数值内容时需要先做数据清洗,避免类型转换报错
- 比较规则可按需自定义修改,只需调整对应判断部分的代码即可,规则会自动对所有行生效
内容的提问来源于stack exchange,提问作者Ary
相关产品推荐
相关产品推荐

