我试图找到CSV文件的每一行的MIN和MAX值,并将它们附加到列表中的下一个位置,位置5和6.我已设法计算平均值,将其附加到第四个位置然后输出这个从最高到最低,我正在努力找出如何找到每行的MAX和MIN值,所以我可以做同样的事 - 从最高到最低。原始CSV的格式为:Fred,56,78,99,每个用户都在新行上。
任何帮助都会受到赞赏。
import csv
import operator
sample = open("sampleData.txt", "r")
csv1 = csv.reader(sample, delimiter = ',')
sort = sorted(csv1,key=operator.itemgetter(0))
for i in range( 0, len(sort)):
sort[i].append((int(sort[i][1]) + int(sort[i][2]) + int(sort[i][3])) / int(len(sort[i])-1))
sort = list(reversed(sorted(sort,key=operator.itemgetter(4))))
for i in range( 0, len( sort ) ):
print(sort[i][0], round(sort[i][4]))
答案 0 :(得分:0)
import csv
sample = open("sampleData.txt", "r")
csv1 = csv.reader(sample, delimiter = ',')
sorted_list = []
for line in csv1:
print '-- ORIG:', line
tmp = sorted( [int(i) for i in line[1:]], reverse=True ) # eg: [99,78,56]
stat_list = [round(sum(tmp)/float(len(tmp)), 2), min(tmp), max(tmp)]
sorted_list.append( [line[0]] + tmp + stat_list )
for s in sorted_list: print '** NEW: ', s # has ['Fred',99,78,56,78.0,57,99]
您可以使用/修改快速&上面的脏解决方案注意:
ORIG:[' Bar',' 23',' 88',' 65']
< / LI>新:[&#39;弗雷德&#39;,78,57,78.0,57,99]