如何从CSV文件两列中获取成本最值及其对应的资质名称
代码修改方案
需修改的核心问题
- 修复
os.path.join参数顺序错误,避免文件读取失败 - 通过pandas的行匹配方法获取最小/最大成本对应的资质字段
- 调整输出格式,匹配预期的数字展示样式
修改后完整代码
import pandas as pd import os filename = "site_operation.csv" path = "." # 修正路径拼接顺序:路径在前,文件名在后 file = os.path.join(path, filename) # 样例数据为多空格分隔,使用sep="\s+"匹配,若实际文件为分号分隔可改回sep=";" tscv1 = pd.read_csv(file, sep="\s+", thousands=".", decimal=",", encoding="ansi") total_cost = tscv1['costs'].sum() print("Total costs from all operations: ", total_cost) minimum = tscv1['costs'].min() maximum = tscv1['costs'].max() # 匹配最小成本对应的行,提取资质名称 min_row = tscv1[tscv1['costs'] == minimum].iloc[0] min_qual = min_row['Qualification'] # 匹配最大成本对应的行,提取资质名称 max_row = tscv1[tscv1['costs'] == maximum].iloc[0] max_qual = max_row['Qualification'] # 格式化数字为「千分位用点、小数位用逗号的要求格式 def format_cost(num): return f"{num:,.2f}".replace(',', '#').replace('.', ',').replace('#', '.') print(f"Min. Cost is = {min_qual} {format_cost(minimum)}") print(f"Max. Cost is = {max_qual} {format_cost(maximum)}")
内容的提问来源于stack exchange,提问作者virat
相关产品推荐
相关产品推荐

