|
import pickle |
|
import pandas as pd |
|
from pyvis.network import Network |
|
import networkx as nx |
|
|
|
pd.set_option('display.max_rows', 500) |
|
pd.set_option('display.max_columns', 500) |
|
pd.set_option('display.width', 1000) |
|
|
|
with open('./CS_Courses.pkl', 'rb') as df_file: |
|
df = pickle.load(df_file) |
|
|
|
null_value = df.loc[1]['prerequisites'] |
|
|
|
no_prereq = [0, 2, 3, 6] |
|
|
|
for i in range(len(df.index)): |
|
if df.loc[i]['prerequisites'] == null_value: |
|
no_prereq.append(i) |
|
|
|
df2 = df.drop(index=no_prereq) |
|
df2.reset_index(drop=True, inplace=True) |
|
|
|
net = Network(height="750px", width="100%", bgcolor="#222222", font_color="white", directed=True, select_menu=True) |
|
|
|
course_names = [] |
|
for i in range(len(df2)): |
|
if i == 15: |
|
net.add_node("COMP 361D1", label="COMP 361D1") |
|
course_names.append("COMP 361D1") |
|
elif i == 16: |
|
net.add_node("COMP 361D2", label="COMP 361D2") |
|
course_names.append("COMP 361D2") |
|
elif i == 23: |
|
net.add_node("COMP 402D1", label="COMP 402D1") |
|
course_names.append("COMP 402D1") |
|
elif i == 24: |
|
net.add_node("COMP 402D2", label="COMP 402D2") |
|
course_names.append("COMP 402D2") |
|
elif i == 66: |
|
net.add_node("COMP 601D2", label="COMP 601D2") |
|
course_names.append("COMP 601D2") |
|
elif i == 67: |
|
net.add_node("COMP 601N2", label="COMP 601N2") |
|
course_names.append("COMP 601N2") |
|
elif i == 69: |
|
net.add_node("COMP 616D2", label="COMP 616D2") |
|
course_names.append("COMP 616D2") |
|
elif i == 70: |
|
net.add_node("COMP 616N2", label="COMP 616N2") |
|
course_names.append("COMP 616N2") |
|
elif i == 71: |
|
net.add_node("COMP 700D2", label="COMP 700D2") |
|
course_names.append("COMP 700D2") |
|
else: |
|
net.add_node(df2.loc[i]['course code'][:8], label=df2.loc[i]['course code'][:8]) |
|
course_names.append(df2.loc[i]['course code'][:8]) |
|
|
|
|
|
|
|
course_names.append("COMP 202") |
|
course_names.append("MATH 235") |
|
course_names.append("MATH 240") |
|
course_names.append("MATH 318") |
|
course_names.append("COMP 230") |
|
course_names.append("PHIL 210") |
|
course_names.append("COMP 273") |
|
course_names.append("COMP 208") |
|
course_names.append("MATH 222") |
|
course_names.append("MATH 223") |
|
course_names.append("MATH 362") |
|
course_names.append("COMP 361D1") |
|
course_names.append("BIOL 200") |
|
course_names.append("15 Computer Science credits.") |
|
course_names.append("9 credits of COMP courses and 9 credits of BIOL courses.") |
|
course_names.append("ECSE 427") |
|
course_names.append("ECSE 321",) |
|
course_names.append("MATH 323",) |
|
course_names.append("MATH 203") |
|
course_names.append("BIOL 309",) |
|
course_names.append("ECSE 305",) |
|
course_names.append("ECSE 205",) |
|
course_names.append("MATH 350",) |
|
course_names.append("MATH 454",) |
|
course_names.append("MATH 487") |
|
course_names.append("MATH 462") |
|
course_names.append("MATH 324") |
|
course_names.append("ECSE 551",) |
|
course_names.append("BIOL 202",) |
|
course_names.append("BIOL 302",) |
|
course_names.append("MATH 417",) |
|
course_names.append("COMP 601D1",) |
|
course_names.append("COMP 601N1",) |
|
course_names.append("COMP 435",) |
|
course_names.append("COMP 616D1",) |
|
course_names.append("COMP 616N1",) |
|
course_names.append("") |
|
course_names.append("COMP 526") |
|
course_names.append("ECSE 526",) |
|
course_names.append("COMP 700D1") |
|
|
|
net.add_node("COMP 202", "COMP 202") |
|
net.add_node("MATH 235", "MATH 235", color='red') |
|
net.add_node("MATH 240", "MATH 240", color='red') |
|
net.add_node("MATH 318", "MATH 318", color='red') |
|
net.add_node("COMP 230", "COMP 230") |
|
net.add_node("PHIL 210", "PHIL 210", color='yellow') |
|
net.add_node("COMP 273", "COMP 273") |
|
net.add_node("COMP 208", "COMP 208") |
|
net.add_node("MATH 222", "MATH 222", color='red') |
|
net.add_node("MATH 223", "MATH 223", color='red') |
|
net.add_node("MATH 362", "MATH 362", color='red') |
|
net.add_node("COMP 361D1", "COMP 361D1") |
|
net.add_node("BIOL 200", "BIOL 200", color='blue') |
|
net.add_node("15 Computer Science credits.", "15 Computer Science credits.", color='black') |
|
net.add_node("9 credits of COMP courses and 9 credits of BIOL courses.", "9 credits of COMP courses and 9 credits of BIOL courses.", color='black') |
|
net.add_node("ECSE 427", "ECSE 427", color='green') |
|
net.add_node("ECSE 321", "ECSE 321", color='green') |
|
net.add_node("MATH 323", "MATH 323", color='red') |
|
net.add_node("MATH 203", "MATH 203", color='red') |
|
net.add_node("BIOL 309", "BIOL 309", color='blue') |
|
net.add_node("ECSE 305", "ECSE 305", color='green') |
|
net.add_node("ECSE 205", "ECSE 205", color='green') |
|
net.add_node("MATH 350", "MATH 350", color='red') |
|
net.add_node("MATH 454", "MATH 454", color='red') |
|
net.add_node("MATH 487", "MATH 487", color='red') |
|
net.add_node("MATH 462", "MATH 462", color='red') |
|
net.add_node("MATH 324", "MATH 324", color='red') |
|
net.add_node("ECSE 551", "ECSE 551", color='green') |
|
net.add_node("BIOL 202", "BIOL 202", color='blue') |
|
net.add_node("BIOL 302", "BIOL 302", color='blue') |
|
net.add_node("MATH 417", "MATH 417", color='red') |
|
net.add_node("COMP 601D1", "COMP 601D1") |
|
net.add_node("COMP 601N1", "COMP 601N1") |
|
net.add_node("COMP 435", "COMP 435") |
|
net.add_node("COMP 616D1", "COMP 616D1") |
|
net.add_node("COMP 616N1", "COMP 616N1") |
|
|
|
net.add_node("COMP 526", "COMP 526") |
|
net.add_node("ECSE 526", "ECSE 526", color='green') |
|
net.add_node("COMP 700D1", "COMP 700D1") |
|
|
|
|
|
net.add_edge(course_names[1], course_names[0], color='yellow') |
|
net.add_edge(course_names[82], course_names[0], color='yellow') |
|
net.add_edge(course_names[82], course_names[1], color='white') |
|
net.add_edge(course_names[1], course_names[2], color='white') |
|
net.add_edge(course_names[83], course_names[2], color='yellow') |
|
net.add_edge(course_names[84], course_names[2], color='yellow') |
|
net.add_edge(course_names[1], course_names[3], color='white') |
|
net.add_edge(course_names[83], course_names[3], color='yellow') |
|
net.add_edge(course_names[84], course_names[3], color='yellow') |
|
net.add_edge(course_names[1], course_names[4], color='white') |
|
net.add_edge(course_names[83], course_names[4], color='yellow') |
|
net.add_edge(course_names[84], course_names[4], color='yellow') |
|
net.add_edge(course_names[85], course_names[4], color='yellow') |
|
net.add_edge(course_names[86], course_names[4], color='yellow') |
|
net.add_edge(course_names[87], course_names[4], color='yellow') |
|
net.add_edge(course_names[0], course_names[5], color='white') |
|
net.add_edge(course_names[1], course_names[5], color='white') |
|
net.add_edge(course_names[0], course_names[6], color='white') |
|
net.add_edge(course_names[88], course_names[7], color='white') |
|
net.add_edge(course_names[88], course_names[8], color='white') |
|
net.add_edge(course_names[0], course_names[9], color='white') |
|
net.add_edge(course_names[1], course_names[10], color='white') |
|
net.add_edge(course_names[0], course_names[10], color='yellow') |
|
net.add_edge(course_names[89], course_names[10], color='yellow') |
|
net.add_edge(course_names[2], course_names[11], color='white') |
|
net.add_edge(course_names[1], course_names[12], color='white') |
|
net.add_edge(course_names[84], course_names[12], color='white') |
|
net.add_edge(course_names[90], course_names[13], color='white') |
|
net.add_edge(course_names[91], course_names[13], color='white') |
|
net.add_edge(course_names[82], course_names[13], color='yellow') |
|
net.add_edge(course_names[89], course_names[13], color='yellow') |
|
net.add_edge(course_names[1], course_names[13], color='yellow') |
|
net.add_edge(course_names[2], course_names[14], color='yellow') |
|
net.add_edge(course_names[3], course_names[14], color='yellow') |
|
net.add_edge(course_names[83], course_names[14], color='blue') |
|
net.add_edge(course_names[84], course_names[14], color='blue') |
|
net.add_edge(course_names[92], course_names[14], color='blue') |
|
net.add_edge(course_names[0], course_names[15], color='white') |
|
net.add_edge(course_names[1], course_names[15], color='white') |
|
net.add_edge(course_names[93], course_names[16], color='white') |
|
net.add_edge(course_names[3], course_names[17], color='white') |
|
net.add_edge(course_names[94], course_names[18], color='white') |
|
net.add_edge(course_names[0], course_names[19], color='white') |
|
net.add_edge(course_names[1], course_names[19], color='white') |
|
net.add_edge(course_names[95], course_names[20], color='white') |
|
net.add_edge(course_names[2], course_names[21], color='white') |
|
net.add_edge(course_names[96], course_names[21], color='white') |
|
net.add_edge(course_names[96], course_names[22], color='white') |
|
net.add_edge(course_names[96], course_names[23], color='white') |
|
net.add_edge(course_names[96], course_names[24], color='white') |
|
net.add_edge(course_names[2], course_names[25], color='white') |
|
net.add_edge(course_names[4], course_names[25], color='white') |
|
net.add_edge(course_names[8], course_names[25], color='yellow') |
|
net.add_edge(course_names[97], course_names[25], color='yellow') |
|
net.add_edge(course_names[2], course_names[26], color='white') |
|
net.add_edge(course_names[91], course_names[26], color='white') |
|
net.add_edge(course_names[98], course_names[26], color='yellow') |
|
net.add_edge(course_names[0], course_names[26], color='yellow') |
|
net.add_edge(course_names[0], course_names[27], color='white') |
|
net.add_edge(course_names[2], course_names[27], color='white') |
|
net.add_edge(course_names[4], course_names[27], color='white') |
|
net.add_edge(course_names[0], course_names[28], color='yellow') |
|
net.add_edge(course_names[98], course_names[28], color='yellow') |
|
net.add_edge(course_names[99], course_names[28], color='white') |
|
net.add_edge(course_names[2], course_names[28], color='white') |
|
net.add_edge(course_names[1], course_names[29], color='white') |
|
net.add_edge(course_names[84], course_names[29], color='white') |
|
net.add_edge(course_names[2], course_names[30], color='white') |
|
net.add_edge(course_names[90], course_names[30], color='white') |
|
net.add_edge(course_names[91], course_names[30], color='white') |
|
net.add_edge(course_names[99], course_names[30], color='white') |
|
net.add_edge(course_names[2], course_names[31], color='white') |
|
net.add_edge(course_names[99], course_names[31], color='white') |
|
net.add_edge(course_names[100], course_names[31], color='yellow') |
|
net.add_edge(course_names[101], course_names[31], color='yellow') |
|
net.add_edge(course_names[8], course_names[32], color='white') |
|
net.add_edge(course_names[2], course_names[32], color='white') |
|
net.add_edge(course_names[91], course_names[33], color='white') |
|
net.add_edge(course_names[99], course_names[33], color='white') |
|
net.add_edge(course_names[0], course_names[33], color='white') |
|
net.add_edge(course_names[1], course_names[33], color='white') |
|
net.add_edge(course_names[88], course_names[34], color='white') |
|
net.add_edge(course_names[4], course_names[34], color='white') |
|
net.add_edge(course_names[2], course_names[35], color='white') |
|
net.add_edge(course_names[91], course_names[35], color='white') |
|
net.add_edge(course_names[5], course_names[35], color='yellow') |
|
net.add_edge(course_names[16], course_names[35], color='yellow') |
|
net.add_edge(course_names[4], course_names[36], color='white') |
|
net.add_edge(course_names[11], course_names[36], color='white') |
|
net.add_edge(course_names[2], course_names[37], color='white') |
|
net.add_edge(course_names[11], course_names[37], color='white') |
|
net.add_edge(course_names[4], course_names[38], color='white') |
|
net.add_edge(course_names[5], course_names[39], color='white') |
|
net.add_edge(course_names[11], course_names[40], color='white') |
|
net.add_edge(course_names[98], course_names[41], color='yellow') |
|
net.add_edge(course_names[5], course_names[41], color='yellow') |
|
net.add_edge(course_names[16], course_names[41], color='yellow') |
|
net.add_edge(course_names[8], course_names[42], color='yellow') |
|
net.add_edge(course_names[97], course_names[42], color='yellow') |
|
net.add_edge(course_names[14], course_names[43], color='yellow') |
|
net.add_edge(course_names[13], course_names[43], color='yellow') |
|
net.add_edge(course_names[14], course_names[44], color='yellow') |
|
net.add_edge(course_names[17], course_names[44], color='yellow') |
|
net.add_edge(course_names[99], course_names[44], color='white') |
|
net.add_edge(course_names[90], course_names[45], color='white') |
|
net.add_edge(course_names[91], course_names[45], color='white') |
|
net.add_edge(course_names[99], course_names[45], color='white') |
|
net.add_edge(course_names[99], course_names[46], color='yellow') |
|
net.add_edge(course_names[102], course_names[46], color='yellow') |
|
net.add_edge(course_names[2], course_names[46], color='blue') |
|
net.add_edge(course_names[3], course_names[46], color='blue') |
|
net.add_edge(course_names[99], course_names[47], color='yellow') |
|
net.add_edge(course_names[103], course_names[47], color='yellow') |
|
net.add_edge(course_names[102], course_names[47], color='yellow') |
|
net.add_edge(course_names[104], course_names[48], color='yellow') |
|
net.add_edge(course_names[17], course_names[48], color='yellow') |
|
net.add_edge(course_names[17], course_names[49], color='yellow') |
|
net.add_edge(course_names[104], course_names[49], color='yellow') |
|
net.add_edge(course_names[105], course_names[49], color='yellow') |
|
net.add_edge(course_names[106], course_names[49], color='yellow') |
|
net.add_edge(course_names[17], course_names[50], color='yellow') |
|
net.add_edge(course_names[104], course_names[50], color='yellow') |
|
net.add_edge(course_names[5], course_names[51], color='white') |
|
net.add_edge(course_names[90], course_names[52], color='white') |
|
net.add_edge(course_names[91], course_names[52], color='white') |
|
net.add_edge(course_names[0], course_names[52], color='white') |
|
net.add_edge(course_names[1], course_names[52], color='white') |
|
net.add_edge(course_names[2], course_names[53], color='white') |
|
net.add_edge(course_names[90], course_names[53], color='white') |
|
net.add_edge(course_names[91], course_names[53], color='white') |
|
net.add_edge(course_names[90], course_names[54], color='white') |
|
net.add_edge(course_names[91], course_names[54], color='white') |
|
net.add_edge(course_names[0], course_names[54], color='white') |
|
net.add_edge(course_names[1], course_names[54], color='white') |
|
net.add_edge(course_names[2], course_names[55], color='white') |
|
net.add_edge(course_names[99], course_names[55], color='yellow') |
|
net.add_edge(course_names[100], course_names[55], color='yellow') |
|
net.add_edge(course_names[101], course_names[55], color='yellow') |
|
net.add_edge(course_names[107], course_names[56], color='yellow') |
|
net.add_edge(course_names[30], course_names[56], color='yellow') |
|
net.add_edge(course_names[47], course_names[56], color='red') |
|
net.add_edge(course_names[90], course_names[56], color='red') |
|
net.add_edge(course_names[91], course_names[56], color='red') |
|
net.add_edge(course_names[108], course_names[56], color='red') |
|
net.add_edge(course_names[109], course_names[56], color='yellow') |
|
net.add_edge(course_names[31], course_names[57], color='white') |
|
net.add_edge(course_names[110], course_names[58], color='yellow') |
|
net.add_edge(course_names[111], course_names[58], color='yellow') |
|
net.add_edge(course_names[108], course_names[58], color='white') |
|
net.add_edge(course_names[30], course_names[58], color='blue') |
|
net.add_edge(course_names[47], course_names[58], color='blue') |
|
net.add_edge(course_names[14], course_names[59], color='white') |
|
net.add_edge(course_names[91], course_names[59], color='white') |
|
net.add_edge(course_names[59], course_names[60], color='yellow') |
|
net.add_edge(course_names[112], course_names[60], color='yellow') |
|
net.add_edge(course_names[5], course_names[62], color='white') |
|
net.add_edge(course_names[28], course_names[62], color='yellow') |
|
net.add_edge(course_names[47], course_names[62], color='yellow') |
|
net.add_edge(course_names[2], course_names[63], color='white') |
|
net.add_edge(course_names[99], course_names[63], color='white') |
|
net.add_edge(course_names[108], course_names[63], color='white') |
|
net.add_edge(course_names[113], course_names[66], color='white') |
|
net.add_edge(course_names[114], course_names[67], color='white') |
|
net.add_edge(course_names[27], course_names[68], color='white') |
|
net.add_edge(course_names[115], course_names[68], color='yellow') |
|
net.add_edge(course_names[42], course_names[68], color='yellow') |
|
net.add_edge(course_names[32], course_names[68], color='yellow') |
|
net.add_edge(course_names[116], course_names[69], color='white') |
|
net.add_edge(course_names[117], course_names[70], color='white') |
|
net.add_edge(course_names[2], course_names[72], color='white') |
|
net.add_edge(course_names[4], course_names[72], color='white') |
|
net.add_edge(course_names[99], course_names[73], color='white') |
|
net.add_edge(course_names[108], course_names[73], color='white') |
|
net.add_edge(course_names[13], course_names[73], color='white') |
|
net.add_edge(course_names[44], course_names[74], color='white') |
|
net.add_edge(course_names[44], course_names[75], color='white') |
|
net.add_edge(course_names[28], course_names[76], color='yellow') |
|
net.add_edge(course_names[119], course_names[76], color='yellow') |
|
net.add_edge(course_names[120], course_names[76], color='yellow') |
|
net.add_edge(course_names[14], course_names[76], color='blue') |
|
net.add_edge(course_names[99], course_names[76], color='blue') |
|
net.add_edge(course_names[102], course_names[76], color='blue') |
|
net.add_edge(course_names[90], course_names[77], color='white') |
|
net.add_edge(course_names[91], course_names[77], color='white') |
|
net.add_edge(course_names[14], course_names[77], color='white') |
|
net.add_edge(course_names[30], course_names[77], color='yellow') |
|
net.add_edge(course_names[47], course_names[77], color='yellow') |
|
net.add_edge(course_names[8], course_names[78], color='white') |
|
net.add_edge(course_names[25], course_names[79], color='white') |
|
net.add_edge(course_names[31], course_names[80], color='white') |
|
net.add_edge(course_names[121], course_names[81], color='white') |
|
|
|
net.show('prerequisites_new_id.html') |
|
print(course_names) |