def create_netwok(df): network = Network() for tour_id in df[ID].unique(): rows = df[df[ID] == tour_id] if check_tour_data(tour_id, rows) is False: continue general_info = rows.iloc[0] outlet = network.get_outlet(general_info[OUTLET]) inlet = network.get_inlet(general_info[INLET]) if outlet is None: outlet = create_place(general_info, Outlet) if inlet is None: inlet = create_place(general_info, Inlet) if inlet and outlet: new_tour = Tour(tour_id=tour_id, inlet=inlet, outlet=outlet, date=general_info[DATE], driver=general_info[DRIVER], material=general_info[MATERIAL], licence_plate=general_info[DRIPLATE]) else: continue for _, row in rows.iterrows(): client = create_place(row, Client) if client: network.add_client(client) new_tour.add_client(client) network.add_tour(new_tour) return network