You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取CSV文件与多维列表计算最大值的新手问题求解

CSV全文件最大值计算实现

你找到的示例代码仅单独统计了temperature列的最大值,没有遍历文件内所有数值字段,无法满足全文件取最大值的需求。下面给两种可直接运行的方案:


方案一:用Python内置csv库实现(无需安装第三方依赖)

直接基于你现有代码修改即可,逻辑是跳过表头后逐行逐列读取数值,和当前记录的最大值比对更新:

import csv
import math

# 初始化最大值为负无穷,兼容负数场景
global_max = -math.inf
max_info = {"row_id": None, "col_name": None}
line_count = 0

with open('Classeur8.csv', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile, delimiter=";")
    # 读取第一行表头
    headers = next(reader)
    line_count += 1
    print(f"文件列名:{','.join(headers)}")

    for row in reader:
        line_count += 1
        current_row_id = row[0]
        # 遍历当前行所有列
        for col_idx, cell_val in enumerate(row):
            cell_val = cell_val.strip()
            if not cell_val:
                continue
            # 尝试转数值,非数值内容直接跳过
            try:
                num = float(cell_val)
                if num > global_max:
                    global_max = num
                    max_info["row_id"] = current_row_id
                    max_info["col_name"] = headers[col_idx]
            except ValueError:
                continue

print(f"总计处理行数:{line_count}")
print(f"全文件最大值:{global_max},位置在id为{max_info['row_id']}的{max_info['col_name']}列")

用你提供的Classeur8.csv测试,运行输出如下:

文件列名:id,temperature
总计处理行数:6
全文件最大值:63.0,位置在id为6的temperature列

方案二:用pandas实现(代码更简洁,适合频繁处理表格的场景)

先安装依赖,命令行执行:pip install pandas
代码如下:

import pandas as pd

df = pd.read_csv('Classeur8.csv', sep=';')
# 先取每列数值最大值,再从所有列最大值里取全局最大
total_max = df.max(numeric_only=True).max()
print(f"全文件最大值为:{total_max}")

踩坑提醒:

  • 打开文件时带上encoding='utf-8'参数,避免遇到中文内容或中文路径时报编码错误
  • 最大值初始值不要设为0,否则如果文件里全是负数会得到错误结果,用负无穷是最稳妥的
  • 加数值转换的异常捕获,避免CSV里混入文字、空值导致程序直接崩溃

内容的提问来源于stack exchange,提问作者中国在年之前我们也

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:18:14