Python csv - 匹配特定的行和列,并管道到新文件

时间:2013-01-02 18:01:31

标签: python csv

我有一个大型的csv文件,大约有170列的数值数据(列),大约1000个人(行)。我想做的是将特定案例的特定值从csv文件传输到文本文件中。

更具体地说,我的csv文件以一列ID号(个案)开头,大约170列包含每种情况的各种数值数据点。我想迭代csv文件并为“CASE156”(例如)拉出第17列(作为示例),并将数据保存在该位置:

CASE156_column_17.txt

要最初读入数据,我使用Python csv内置为:

f =csv.reader(open('genotypes.csv','rbU'))

我试过了

rownum=0
for row in f:
     if rownum=='CASE156':
         print column[16]

但是,这不会产生预期的结果。如何为特定案例提取特定列的数据?

为了使问题稍微复杂一点,如果该单元格中没有数据,我想跳过它而不生成.txt文件。

非常感谢,

1 个答案:

答案 0 :(得分:2)

假设您要查找的密钥位于“key_index”列中 然后你可以使用:

f = csv.reader(open('genotypes.csv','rbU'))
key_index = 22  # assuming that this column contains something like 'CASE156'
for rownum, row in enumerate(f):
    if row[key_index] == 'CASE156':
         print row[16]

阅读基本的Python文档。

您还可以使用DictReader通过词典使CSV数据更加平易近人 而不是只能通过列号访问的行。

http://docs.python.org/2/library/csv.html#csv.DictWriter