【发布时间】:2020-09-21 00:17:39
【问题描述】:
我有一个 csv 文件,它有 10 列和大约 7,000 行。我必须根据第 4 列(0、1、2、3)对数据进行排序,我知道这是第 3 列,基于 0 的计数。该列有一个标题,该列中的数据是数值。此列中的最大值为:7548375288960,因此该行应位于我的结果的顶部。
我的代码如下。有趣的事情正在发生。如果我将 reverse=True 更改为 reverse=False,那么基于我在 Excel 中手动排序 csv 文件,打印到屏幕上的 15 行是正确的。但是当我设置 reverse=True 时,它们不是正确的。以下是我的打印声明中的前 4 个:
999016759.26
9989694.0
99841428.0
998313048.0
这是我的代码:
def display():
theFile = open("MyData.csv", "r")
mycsv = csv.reader(theFile)
sort = sorted(mycsv, key=operator.itemgetter(3), reverse=True)
for row in islice(sort, 15):
print(row)
感谢任何帮助!
【问题讨论】:
-
您是将列排序为字符串还是数字?
-
我不太确定。我认为这就是问题所在。我想我将它们排序为字符串,但需要将它们排序为数字,不知道该怎么做
-
@Mike67,这对我很有帮助,让我朝着正确的方向前进,谢谢。
标签: python-3.x