2016-03-04 88 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()