0

我有一个大型 csv 文件,其中包含大约 1000 个人(行)的大约 170 列数值数据(列)。我想做的是将特定情况下的特定值从 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 文件。

提前谢谢了,

4

1 回答 1

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通过 dict 而不是只能通过列号访问的行来使 CSV 数据更易于访问。

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

于 2013-01-02T18:18:47.117 回答