作为我正在进行的项目的一部分,我需要创建一个联赛表,并且为了按点排序,我需要从excel访问points列并订购它。到目前为止,我为此编写的代码是:
output = []
x = open("table.csv", "rU")
for line in x:
cells = line.split(",")
output.append((cells[7]))
print output
点数是所有列中的最后一列,共有7个。输出结果为:
['Points\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n']
有没有办法获得数字,然后在不使用熊猫的情况下订购它们?
谢谢
答案 0 :(得分:2)
你应该看看CSV module,它会帮助你做到这一点。
查看您已有的代码,您希望跳过列标题,并在“单元格”上调用strip()
以删除新行。在输出之前,对输出列表进行排序:
output = []
with open("table.csv", "rU") as x:
next(x) # skip header row
for line in x:
cells = line.split(",")
output.append((cells[7].strip()))
output.sort()
print output
您的代码可以简化为:
with open("table.csv", "rU") as f:
output = sorted([line.split(',')[7].strip() for line in f][1:])
或者您可以使用CSV模块:
import csv
with open("table.csv", "rU") as f:
reader = csv.reader(f)
next(reader)
output = sorted(row[7] for row in reader)