从python中的excel获取列到数组中

时间:2014-11-04 09:55:05

标签: python arrays excel csv

作为我正在进行的项目的一部分,我需要创建一个联赛表,并且为了按点排序,我需要从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']

有没有办法获得数字,然后在不使用熊猫的情况下订购它们?

谢谢

1 个答案:

答案 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)