我的任务是读取csv文件,找到第三列中的最大值,然后存储具有该最大值的行。
到目前为止,我已经能够读取csv文件并找到最大值,但我无法搜索该值并获取行。
import csv
with open('file_name.csv', 'r', newline='') as f:
reader = csv.DictReader(f)
ThirdCol = []
#This block takes the 3rd column in the file and makes it a list. After sorting, the last value is the "largest" value.
for col in reader:
ThirdCol.append(col['colName'])
ThirdCol.sort()
Largest = ThirdCol[-1]
#This block attempts to take the found largest value and print rows with their third columns matching the largest value.
for row in reader:
if Largest == row[2]:
print (row)
我不确定这里有什么问题,我的笔记本没有输出或错误信息。我已将问题缩小到" row"我的代码部分。我的目的是搜索行中的[2]元素,它应该是第三列,并打印行[2]匹配我确定为前一个for循环中最大值的行。
关于stackoverflow的其他问题,我也认为我的问题可能与使用" DictReader"以及如何在第一个for循环中我使用字符串进行搜索而第二个循环用于循环我使用整数。
我对python和编程很新。我只获得了documentation for CSV的链接,我们只介绍了基本的数据类型,函数和循环。我感谢任何人都可以给我的方向,谢谢。
答案 0 :(得分:0)
import csv
with open('file_name.csv', 'r', newline='') as f:
reader = csv.reader(f)
# Saving CSV data into a list
data = [x for x in reader]
# Get maximum value from list using max(list) function
max_thirdcol_val = max([x[2] for x in data])
# Check row by row for 3 col value to max with Max value
for row in data:
if row[2] == max_thircol_val:
print(row)