【发布时间】:2015-06-14 05:56:55
【问题描述】:
我正在尝试按特定列对我的 csv 文件进行排序。使用下面的代码很容易:
with open("outfile.csv","rb") as infile,open("outfile.csv","wb") as outfile:
reader= csv.reader(infile,delimiter=',')
writer= csv.writer(outfile)
sort= sorted(reader,key=operator.itemgetter(7), reverse= True)
for eachline in sort:
writer.writerow(eachline)
然而,在我的示例中,它会排序,但会以一种奇怪的方式排序。例如,它会按以下顺序将文件返回给我:3.8,3.7,3.1,21.7,21.6,2.8。
由于这给我带来了问题,我想解决这个问题;如果不能,我想尽可能按最大长度排序。
这听起来令人困惑,但这是我遇到的问题。任何帮助都会很棒。
谢谢。
【问题讨论】:
-
看起来像字母顺序,假设您想要数字顺序,您可能需要考虑如何将其转换为浮动进行排序,例如
key=lambda x: float(x[7]) -
我现在的问题是我首先有标题,因此当我需要它成为浮点数时,在运行时将它变成一个字符串。