2016-03-04 120 views
0

我試圖將一個csv讀入二維數組中,而且我似乎被卡住了。任何幫助下面的代碼將不勝感激。蟒蛇中的二維數組/列表

import sys, csv 

rowColumn = [] 
rowColumn.append([]) 
rowColumn.append([]) 

with open('filelocation.csv', "r+") as inputFile: 
    fieldnames = ['col1','col2','col3','col4','col5','col6','col7','col8',] 
    reader = csv.reader(inputFile) 
     i1=-1 
     i2=0 
     for row in reader: 
      i1=i1+1 
      print(row) 
      for item in row: 
       #store item in 2D list/array 
       rowColumn[i1][i2].append(item)#error occurs here 
       i2=i1+1 

工作代碼:

import sys, csv 

rowColumn = [] 
rowColumn.append([]) 
rowColumn.append([]) 

with open('filelocation.csv', "r+") as inputFile: 
    reader = csv.reader(inputFile) 
    i1=-1 
    for row in reader: 
     i1+=1 
     i2=0 
     for item in row: 
      #store item in 2D list/array 
      rowColumn[i1][i2].append(item) 
      i2+=1 

看來我i2變量被設在了錯誤的地方。

+0

您應詳細說明你的「問題」。請記住,您發佈了一個「問題」,但沒有在您的帖子中提出任何問題。詳細說明發生了什麼,並將其與你想要發生的事情進行比較。然後陳述爲什麼你認爲你的代碼應該工作,以及你已經做了什麼嘗試修復。 –

回答

2

你的問題是在最後一行:你讓你的列號取決於行號。嘗試這樣的事情,而不是:

for row in reader: 
     i1 += 1 
     print(row) 
     i2 = 0 
     for item in row: 
      #store item in 2D list/array 
      rowColumn[i1][i2].append(item) 
      i2 += 1 

在你以前沒有見過的情況下,

我+ = 1

等同於

I = i + 1

3

它是很難被擊敗大熊貓的易用性:

import pandas as pd 

# Read CSV file into pandas dataframe df 
df = pd.read_csv('filelocation.csv', index_col=False) 

# Convert dataframe to python list via a numpy array 
python_list = df.values.tolist()