2015-07-21 168 views
0

我的任務是導入一個CSV文件並將其製作成一個數組,我已經完成了。現在我的任務是將數據分配給一個變量 - 這可能嗎?例如,我將如何通過鍵入myVariableName [1]來訪問數組的第二列?Python將CSV文件分配給變量

import csv 
import numpy as np 
f = open("Test.csv") 
csv_f = csv.reader(f) 
for row in csv_f: 
    print(np.array(row)) 
f.close() 
+0

你可能想看看'NP。 loadtxt'或'pandas.read_csv' – maxymoo

+1

提示,您已經將其他事物分配給變量名稱。例如'f = open(「Test.csv」)'將'open'返回的文件對象賦給變量'f'。你用'csv_f'再次做了。從這裏,不應該太難弄清楚如何爲代碼中的任何特定對象分配一個變量名... – mgilson

+0

我試圖分配一個變量,但是可以包含「for」語句作爲好? – aaa905

回答

0

您可以使用numpy.loadtxt()

a.csv:

1,2,3 
4,5,6 
7,8,9 

代碼:

import numpy as np 

matrix = np.loadtxt(open("a.csv","rb"),delimiter=",") 
print(matrix[:,1]) 
# prints [ 2. 5. 8.] 
+0

這代替了我的代碼? – aaa905

0

創建一個列表,從第2列項目可以爲您處理CSV文件中的每一行追加。下面的代碼將包含從第2列項變量column_2

import csv 

column_2 = [] 
f = open("Test.csv") 
csv_f = csv.reader(f) 
for row in csv_f: 
    column_2.append(row[1]) 
f.close() 
print column_2 

你可以用一個列表理解取代所有代碼:

import csv 

column_idx = 1 
with open('Test.csv') as f: 
    column_2 = [row[column_idx] for row in csv.reader(f)] 
print column_2