2016-03-07 34 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

你想什麼與數據框一起工作。嘗試使用熊貓庫,因爲它簡化了許多操作。