2015-07-21 116 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