Advertisement
mennakhaled6

course_schedule

Jun 22nd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.25 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Jun 22 17:42:29 2017
  4.  
  5. @author: Menna
  6. """
  7.  
  8. import pymysql
  9. import pandas as pd
  10.  
  11.  
  12. db = pymysql.connect(host="127.0.0.1",user="root",passwd="",db="registration_system")
  13. cur = db.cursor()
  14. #cur1 = db.cursor()
  15. cur2 = db.cursor()
  16. cur3 = db.cursor()
  17. cur4 = db.cursor()
  18. cur5 = db.cursor()
  19. cur6 = db.cursor()
  20. cur7 = db.cursor()
  21. cur8 = db.cursor()
  22. cur9 = db.cursor()
  23. cur.execute("SELECT *FROM schedule INNER JOIN course ON schedule.course_code=course.course_code WHERE course_semester LIKE 'Fall%'")
  24. query_result = cur.fetchall()
  25. #cur1.execute("SELECT *FROM schedule INNER JOIN course ON schedule.course_code=course.course_code WHERE course_semester LIKE 'Summer%'")
  26. #query_result1 = cur1.fetchall()
  27. cur2.execute("SELECT *FROM schedule INNER JOIN course ON schedule.course_code=course.course_code WHERE course_semester LIKE 'Spring%'")
  28. query_result2 = cur2.fetchall()
  29. cur3.execute("SELECT course_code , grade , student_semester FROM student_course WHERE grade LIKE 'F%'")
  30. query_result3 = cur3.fetchall()
  31. cur4.execute("SELECT course_code , grade , student_semester FROM student_course ")
  32. query_result4 = cur4.fetchall()
  33. cur5.execute("SELECT * FROM course INNER JOIN fixed_studyplan on course.course_code=fixed_studyplan.course_code WHERE course_creditHours>2 AND EC=1 AND course_semester LIKE 'F%'")
  34. query_result5 = cur5.fetchall()
  35. cur6.execute("SELECT * FROM course INNER JOIN fixed_studyplan on course.course_code=fixed_studyplan.course_code WHERE course_creditHours>2 AND EC=1 AND course_semester LIKE 'Sp%'")
  36. query_result6 = cur6.fetchall()
  37. cur7.execute("SELECT * FROM fixed_studyplan WHERE course_code LIKE 'HS%' and course_semester LIKE 'F%'")
  38. query_result7 = cur7.fetchall()
  39. cur8.execute("SELECT * FROM fixed_studyplan WHERE course_code LIKE 'HS%' and course_semester LIKE 'Sp%'")
  40. query_result8 = cur8.fetchall()
  41. cur9.execute("SELECT course_code , course_name FROM course")
  42. query_result9 = cur9.fetchall()
  43. db.close()
  44.  
  45. FreqFall = pd.DataFrame()
  46. #FreqSummer = pd.DataFrame()
  47. FreqSpring = pd.DataFrame()
  48. Failed_Courses = pd.DataFrame()
  49. All_Courses = pd.DataFrame()
  50. Core_coursesofFall = pd.DataFrame()
  51. Core_coursesofSpring = pd.DataFrame()
  52. humanFall = pd.DataFrame()
  53. humanSpring = pd.DataFrame()
  54. Name_Courses = pd.DataFrame()
  55.  
  56.  
  57.  
  58.  
  59. for (i,row) in enumerate(query_result):
  60.     Fall_courses = pd.DataFrame({'CourseCode':[(row[0])],'Count':[row[1]]},index=[i])
  61.     FreqFall = FreqFall.append(Fall_courses)
  62. FreqFall = FreqFall.groupby('CourseCode').count()
  63.  
  64.  
  65.  
  66.  
  67. #for (i,row) in enumerate(query_result1):
  68. #    Summer_courses = pd.DataFrame({'CourseCode':[(row[0])],'Count':[row[1]]},index=[i])
  69. #    FreqSummer = FreqSummer.append(Summer_courses)
  70. #FreqSummer = FreqSummer.groupby('CourseCode').count()
  71. #    
  72.  
  73.  
  74. for (i,row) in enumerate(query_result2):
  75.     Spring_courses = pd.DataFrame({'CourseCode':[(row[0])],'Count':[row[1]]},index=[i])
  76.     FreqSpring = FreqSpring.append(Spring_courses)
  77. FreqSpring = FreqSpring.groupby('CourseCode').count()
  78.  
  79.  
  80. for (i,row) in enumerate(query_result3):
  81.     Failed = pd.DataFrame({'CourseCode':[(row[0])],'Grade':[row[1]],'Semester':[row[2]]},index=[i])
  82.     Failed_Courses = Failed_Courses.append(Failed)
  83. Failed_Courses = Failed_Courses.groupby(["CourseCode", "Semester"]).size().reset_index(name="SumFailed")
  84.  
  85.  
  86.  
  87. for (i,row) in enumerate(query_result4):
  88.     Courses = pd.DataFrame({'CourseCode':[(row[0])],'Grade':[row[1]],'Semester':[row[2]]},index=[i])
  89.     All_Courses = All_Courses.append(Courses)
  90. All_Courses = All_Courses.groupby(["CourseCode", "Semester"]).size().reset_index(name="Total")
  91.  
  92.  
  93. # ALL core courses in the fall
  94. for (i,row) in enumerate(query_result5):
  95.     CoreFall = pd.DataFrame({'CourseCode':[(row[0])],'Course Name':[row[1]],'Semester':[row[6]],'term':[row[7]]},index=[i])
  96.     Core_coursesofFall = Core_coursesofFall.append(CoreFall)
  97.  
  98. CoursesOfFall = [] # courses ely tl3a mel teqrar bt3 el fall in array version
  99. Fall_CounterMax = FreqFall['Count'].max()
  100. for (i,row) in enumerate(FreqFall['Count']):
  101.     if FreqFall['Count'].iloc[i] == Fall_CounterMax or FreqFall['Count'].iloc[i] == Fall_CounterMax-1:
  102.         CoursesOfFall.append(FreqFall.index[i])
  103.        
  104. FallCourses=pd.DataFrame(CoursesOfFall) # courses ely tl3a mel teqrar bt3 el fall in dataframe version
  105. resultFall = pd.concat([FallCourses,Core_coursesofFall['CourseCode']],ignore_index=True)
  106. resultFall = resultFall.drop_duplicates().reset_index(drop=True)              
  107.  
  108.  
  109. for (i,row) in enumerate(query_result7):
  110.     HFall = pd.DataFrame({'CourseCode':[(row[0])]},index=[i])
  111.     humanFall = humanFall.append(HFall)  
  112. resultFall = pd.concat([resultFall,humanFall['CourseCode']],ignore_index=True)
  113. resultFall = resultFall.drop_duplicates().reset_index(drop=True)              
  114. resultFall.columns = ['CourseCode']
  115. resultFall = (list(resultFall['CourseCode']))
  116.  
  117. #CoursesOfSummer = []
  118. #Summer_CounterMax = FreqSummer['Count'].max()
  119. #for (i,row) in enumerate(FreqSummer['Count']):
  120. #    if FreqSummer['Count'].iloc[i] == Summer_CounterMax or FreqSummer['Count'].iloc[i] == Summer_CounterMax-1:
  121. #        CoursesOfSummer.append(FreqSummer.index[i])
  122.    
  123.    
  124. # ALL core courses in the Spring
  125. for (i,row) in enumerate(query_result6):
  126.     CoreSpring = pd.DataFrame({'CourseCode':[(row[0])],'Course Name':[row[1]],'Semester':[row[6]],'term':[row[7]]},index=[i])
  127.     Core_coursesofSpring = Core_coursesofSpring.append(CoreSpring)
  128.  
  129. CoursesOfSpring = [] # courses ely tl3a mel teqrar bt3 el spring in array version
  130. Spring_CounterMax = FreqSpring['Count'].max()
  131. for (i,row) in enumerate(FreqSpring['Count']):
  132.     if FreqSpring['Count'].iloc[i] == Spring_CounterMax or FreqSpring['Count'].iloc[i] == Spring_CounterMax-1:
  133.         CoursesOfSpring.append(FreqSpring.index[i])
  134.  
  135. SpringCourses=pd.DataFrame(CoursesOfSpring) # courses ely tl3a mel teqrar bt3 el spring in dataframe version
  136. resultSpring = pd.concat([SpringCourses,Core_coursesofSpring['CourseCode']],ignore_index=True)
  137. resultSpring = resultSpring.drop_duplicates().reset_index(drop=True)
  138.  
  139.  
  140. for (i,row) in enumerate(query_result8):
  141.     HSpring = pd.DataFrame({'CourseCode':[(row[0])]},index=[i])
  142.     humanSpring = humanSpring.append(HSpring)  
  143. resultSpring = pd.concat([resultSpring,humanSpring['CourseCode']],ignore_index=True)
  144. resultSpring = resultSpring.drop_duplicates().reset_index(drop=True)
  145. resultSpring.columns = ['CourseCode']
  146. resultSpring = (list(resultSpring['CourseCode']))
  147.  
  148.  
  149. Merged_Courses = pd.merge(All_Courses, Failed_Courses, on=['CourseCode', 'Semester'])
  150.  
  151. input_last_term = input('Input Last Term:')
  152. print("")
  153.  
  154. PercentageOfFailure = Merged_Courses['SumFailed']/Merged_Courses['Total']
  155. PercentageOfFailure = PercentageOfFailure.to_frame('Percentage')
  156. Merged_Courses = pd.concat([Merged_Courses, PercentageOfFailure], axis=1)
  157. LastTermFailures = Merged_Courses[ Merged_Courses['Semester'] == input_last_term]
  158. LastTermFailures = LastTermFailures[LastTermFailures['SumFailed'] >= 10]
  159. LastTermFailures = list(LastTermFailures['CourseCode'])
  160.  
  161.  
  162.  
  163. for (i,row) in enumerate(query_result9):
  164.     Namecourses = pd.DataFrame({'CourseCode':[(row[0])],'CourseName':[row[1]]},index=[i])
  165.     Name_Courses = Name_Courses.append(Namecourses)
  166.  
  167.  
  168. if('Fall' in input_last_term):
  169.     resultSpring = resultSpring + LastTermFailures
  170.     resultSpring = set(resultSpring)
  171.     resultSpring = list(resultSpring)
  172.     print("Spring Semester")
  173.     Output = pd.DataFrame(resultSpring, columns=['CourseCode'])
  174. elif('Spring' in input_last_term):
  175.     resultSummer = []
  176.     resultSummer = LastTermFailures
  177.     print("Summer Semester")
  178.     Output = pd.DataFrame(resultSummer, columns=['CourseCode'])
  179. elif('Summer' in input_last_term):
  180.     resultFall = resultFall + LastTermFailures
  181.     resultFall = set(resultFall)
  182.     resultFall = list(resultFall)
  183.     print("Fall Semester")
  184.     Output = pd.DataFrame(resultFall, columns=['CourseCode'])
  185.  
  186. FinalOutput = pd.merge(Name_Courses, Output, on='CourseCode')
  187. print("")
  188. print (FinalOutput)
  189.  
  190. db1 = pymysql.connect(host="127.0.0.1",user="root",passwd="",db="recommender_system")
  191. cur10 = db1.cursor()
  192. for(i,row) in enumerate(FinalOutput.iterrows()):
  193.     v=(FinalOutput['CourseCode'][i], FinalOutput['CourseName'][i])
  194.     cur10.execute("INSERT INTO output_schedule (course_code, course_name) VALUES (%s, %s)" , v)
  195.     db1.commit()
  196. db1.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement