Как указал Вэнь Цзябао, Панды, вероятно, не оптимальны для представления таких данных.Если вы хотите работать с Pandas, я бы рекомендовал переключаться с «соединяющих станций» через их близость в df (следующий ряд = следующая станция, если это не другой маршрут / с использованием букв для определения порядка) на числовые идентификаторы и сохранение маршрутов, имени т. д. в разных колонках.Если вы используете числовые идентификаторы, вот возможная реализация сложения пассажиров.Различные маршруты различаются по номеру 100 + или номеру 200 +:
table = pd.DataFrame({'route':['g','g','g','g','r','r','r'],'start':[101,102,103,104,201,202,203],
'stop':[102,103,104,105,202,203,204],'count':[0,0,0,0,0,0,0]})
passenger = pd.DataFrame({'start':[101,102,202],'stop':[104,103,204],
'passenger':[2,5,3]})
count = list(zip(passenger.start.tolist(),passenger.stop.tolist(),passenger.passenger.tolist())) #merge the start, stop and count into one list for each entry
for c in count:
for x in range(c[0],c[1]+1): #go through each stop and add the count to the train table
table['count'] = np.where(table.start == x, table['count'] + c[2], table['count'])
table #Now with the passenger data