Вставить строку на основе совпадающих элементов столбцаPython

Программы на Python
Anonymous
Вставить строку на основе совпадающих элементов столбца

Сообщение Anonymous »

У меня есть данные, которые выглядят следующим образом (отредактированы в целях конфиденциальности):
Изображение

И еще один лист, с которым я хочу сопоставить:
[img]https://i. sstatic.net/XJZGgwcg.png[/img]

Я хотел бы добавить столбец «шаблон» с листа 2 на лист 1 на основе соответствия маршрута, поездки и направления. Например, для R3 с идентификатором поездки 1330, обслуживание которого осуществляется в воскресенье и имеет направление L, должен быть вставлен элемент шаблона LP. Сначала я попробовал использовать слияние df, сопоставив имена строк в «service» с соответствующим форматом даты и времени, а затем выполнил левое слияние в pandas, но получил кучу дополнительных строк.

Код: Выделить всё

merged_df = pd.merge(
route_df,
pattern_df[['Route', 'Direction', 'Date', 'Pattern']],
on=['Route', 'Direction', 'Date'],
how='left')
Изображение

Простой выход — создать цикл for для перебора каждой строки и определения условий в словаре, однако мой набор данных состоит из нескольких миллионов строк, и сделать это таким образом было бы очень дорого в вычислительном отношении.


Подробнее здесь: https://stackoverflow.com/questions/783 ... n-elements

Вернуться в «Python»