2016-03-07 33 views
4

我想导入保存在Excel CSV中的数据行。如何将每行数据保存为列表?将Excel行读入Python

Excel文件有以下类型的数据:

Name B C D 
ItemID 3 3 4 
Height 5 5 7 
Length 6 5 8 

我想保存[B,C,d]在名为Name列表,[3,3,4]作为列表命名ItemID。我试图使用下面的代码,但它总是返回文件的最后一行。

f = open('part.csv', 'r') 
csv_f=csv.reader(f,delimiiter=',') 
for row in csv_f: 
    name.append(row[1]) 
    numid.append(row[2]) 
    height.append(row[3]) 
    length.append(row[4]) 
+0

part.csv的实际内容是什么? – alexanderlukanin13

+0

注意,Python在访问列表时从0开始,所以我建议你为第一列尝试'name.append(row [0])'。 'delimiiter'也是'delimiter',虽然默认已经是','。 –

回答

0

强烈建议考虑使用pandas python数据分析库。

import pandas as pd 

csv_df = pd.read_csv('part.csv') 
df_T = csv_df.T 

print df_T['ItemID'].tolist() 
print df_T.index.tolist() 
2

我想你误解了一行有该行的所有列,例如,第一次通过循环row = ['Name', 'B', 'C', 'D']
所以使用字典,用钥匙作为第一列,其余作为值:

data = {} 
with open('part.csv', 'r') as f: 
    csv_f=csv.reader(f,delimiiter=',') 
    for row in csv_f: 
     data[row[0]] = row[1:] 

数据:

{'Height': ['5', '5', '7'], 
'ItemID': ['3', '3', '4'], 
'Length': ['6', '5', '8'], 
'Name': ['B', 'C', 'D']} 
1

试试这个

with open('testdata.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     name.append(row['fieldname']) 
+0

这会抛出一个'KeyError','1'不是'row'中字典的有效键。 'row = {'Name':'ItemID','B':'3','C':'3','D':'4'}'。 – AChampion

0

你想什么与数据框一起工作。尝试使用熊猫库,因为它简化了许多操作。