2013-01-02 13 views
0

我有一個大型csv文件,大約1000個人(行)的值大約爲170列的數值數據(列)。我想要做的是爲csv文件中的特定情況輸入一個特定的值到文本文件中。Python 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

你試過什麼嗎? – XORcist

+0

是的,對不起。我更新了我的問題,以反映爲某個特定主題索引列的初始嘗試。 –

+1

你可能應該閱讀一個Python編程的一般性介紹,就像其中之一一樣:http://stackoverflow.com/questions/207701/python-tutorial-for-total-beginners – XORcist

回答

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

相關問題