2016-11-20 23 views
0

我知道csv模块存在,但是对于我当前的项目,我们不允许使用该模块调用csv文件。Python 2.7 - 如何从转置的csv文件中调用单个列

我的代码如下;

table = [] 
for line in open("data.csv"): 
data = line.split(",") 
table.append(data) 
transposed = [[table[j][i] for j in range(len(table))] for i in range(len(table[0]))] 
rows = transposed[1][1:] 
rows = [float(i) for i in rows] 

我真的很新的Python所以这可能是一个大规模的基本问题,我一直在网上淘了一整天,很难找到一个解决方案。我需要做的就是能够从任何单独的列中调用数据,以便我可以分析它。谢谢

回答

0

您的数据被组织在列表中。每个子列表代表一行。为了更好地说明这一点,我将避免使用列表解析,因为它们更难以阅读。此外,我会避免使用像'我'和'j'这样的变量,而是使用更多的描述性名称,如行或列。这里是一个简单的例子,我将如何完成这个

def read_csv(): 
    table = [] 
    with open("data.csv") as fileobj: 
     for line in fileobj.readlines(): 
      data = line.strip().split(',') 
      table.append(data) 
    return table 

def get_column_data(data, column_index): 
    column_data = [] 
    for row in data: 
     cell_data = row[column_index] 
     column_data.append(cell_data) 
    return column_data 


data = read_csv() 
get_column_data(data, column_index=2) #example usage 
相关问题