2012-08-15 135 views
-1

我已经写了一个函数,它应该返回一个列号,它对应于我想从csv文件中稍后提取的特定变量。变量名称由state_aggregate_vars指定。为什么我的Python代码不打印我的列表?

import csv 
import numpy 

def compute_countyStats(state_aggregate, year, state_aggregate_vars, listCounties, county_var, int_obese, int_healthy, int_refuse): : 
    f = open(state_aggregate, 'r') 
    readit = csv.reader(f) 
    headers = readit.next() 
    use_cols = [] 
    for name in state_aggregate_vars: 
     use_cols.append(headers.index(name)) 
    return use_cols 
    county_data = numpy.genfromtxt(f, dtype=float, delimiter=',', names = state_aggregate_vars, filling_values= -1, 
       usecols= use_cols, usemask=False) 
    sorted_array = county_data(numpy.argsort(county_data, axis= headers.index(county_var)) 
    for code in listCounties: 
    temp = [] 
    for entry in sorted_array: 
     if entry[0] == code: 
      temp.append(float(entry[1])) 
     else: 
      continue 
    percent_healthy = numpy.true_divide(temp.count(int_healthy),num_obs) 
    percent_obese = numpy.true_divide(temp.count(int_obese),num_obs) 
    percent_refused = numpy.true_divide(temp.count(int_refuse),num_obs) 
    county_stats[code] = year, code, percent_healthy, percent_obese, percent_refused, 
return county_stats 

接下来,我调用此函数使用下列内容:

state_aggregate = "Aggregate_test90.csv" 
year = 1990 
state_aggregate_vars = ['_BMI90', 'AGE90', 'CTYCODE90', 'IYEAR90', 'SEX90', '_RFOBESE90'] 
listCounties = [31, 43, 163, 32, 167, 97] 
county_var = 'CTYCODE90' 
int_obese = 2 
int_healthy = 1 
int_refuse = 0 

test = compute_countyStats(state_aggregate, year, state_aggregate_vars, listCounties, county_var, int_obese, int_healthy, int_refuse) 

这里是我的错误:

SyntaxError: invalid syntax in line 6: 
for name in state_aggregate_vars: 

可能是什么回事?

这是我python -V

Python 2.7.3 -- EPD 7.3-2 (32-bit) 
+2

您使用的是古代版本的python吗?告诉我们'python -V'。 – bukzor 2012-08-15 04:53:11

+1

代码非常好 – 2012-08-15 04:54:52

+0

语法正确,您使用的是哪个版本的python? – Amyth 2012-08-15 04:56:09

回答

1

有在你的代码中的一些错误:

线4:冒号多

线14:缺少括号

线17 :缺少缩进

第27行:缺少缩进

+0

谢谢,我做了这些修复。 – SVenkatesh 2012-08-15 05:58:50

0

看起来我的Python安装被破坏了。我重新安装了它,现在这个功能非常完美。

相关问题