繁体   English   中英

在python中进行预处理

[英]Preprocessing in python

我是python的新手,想了解您的想法,以了解实现以下预处理块的最佳方法是什么(我已经使用ibm-opl实现了)

我在以下代码中所做的工作如下:

我创建了一个空的二维矩阵,称为edu_bg。 而且我已经有了一个查询,该查询可以为我提供数据库表中的学生人数(我使用stuCount变量存储该表)及其教育背景。 因此,我在这里要做的是一次比较一对学生,如果他们的教育背景相同,我会将他们输入到我的二维矩阵中,如果他们的教育背景不同,我会将他们设为零。

我的代码如下:

    int edu_bg[student][student];

    execute PREPROCESSING{

    for(i=1; i <=stuCount; i++){
      for(j=i+1; j <=stuCount; j++){
       if(stu_info[i].edu==stu_info[j].edu){
          edu_bg[i][j] =1 
           }
       else{
         edu_bg[i][j] =0
           }
       }
   }

我试图使用python来做同样的事情,但是我发现这真的很困难。 因为我看不到比较学生记录的明确方法。

我将一切设置为与数据库连接并使用python获取记录,如下所示:

    con = sqlite3.connect(os.path.join('..','db_path', 'db'))
    cur = con.cursor()
    cur.execute('select id,edu from student_data') 
    result = cur.fetchall()
    for i in result:
       print i[0] 

好。 当我打印i [0]时,会给我所有学生的身份证。 当我打印i [1]时,它给了我学生的教育详细信息(在我的数据库中,我将其存储为整数ex:11、22。但是我的问题是如何根据他们的教育程度比较一对学生。我的问题是数据结构,我的路径正确吗?

经过一些努力,我设法编写了如下代码。 欢迎对改进发表任何意见。

    data=curr.execute('select id,edu from student_data')
    result = curr.fetchall()
    mydic1=dict(result)

    data2=curr.execute('select id,edu from student_data ')
    result2 = curr.fetchall()
    mydic2=dict(result2)

    looping=curr.execute('select count(id) from student_data')
    loop_times = curr.fetchall()
    count = int(loop_times[0][0])

    count = count + 1
    edu=defaultdict(int)
    a=0
    for i in range(1,count):
       row = [] 
       for j in range(i+1, count):
           if mydic1[i]==mydic2[j]:
               row.append(1)
           else:
             row.append(0)
           edu[a]=row
           a+=1
      print edu

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM