Вы можете попробовать это:
df.loc[1:,'B':] = df.loc[1:,'B':].shift(1, axis=1).fillna(0)
Вывод:
A B C D E
0 1 8 2011-06-01 ABC ABC
1 2 0 2011-06-01 ABC ABC
Лично я убежал бы из этого кошмара с такой скоростью, как я мог. Так как Вы еще не купили этот заказ онлайн, я предположил бы, что хранение данных в синхронизации с существующим приложением является допустимой причиной того, что не была сделана такая вещь. При покупке этого, Вы будете вечно сожалеть, как испачканный Ваши данные станет и сколько времени и денег Вы тратите попытку получить вещи работать правильно. Это - неизбежная авария. Вы '' ll заканчиваете тем, что имели объекты порядка людей, предположительно, в iventory, когда нет ни одного на складе. Не делайте этого. Это - гарантия сердитых клиентов и сердитых менеджеров. Далеко намного более дешевый со временем для найма некоторых разработчиков для соединения собственного заказа онлайн это получает доступ базе данных. Если бы они идут вперед по Вашим возражениям, я обновил бы свое резюме.
От личного опыта я только использовал бы репликацию, если бы не было никакого другого выбора. Необходимо разъединить его для любого изменения схемы, и это имеет тенденцию просто аварийно завершиться.
Для этого я, скорее всего, использовал бы SSIS. Довольно легко создать пакет преобразования и довольно простой поддержать.
Бизнес-правила являются Твердой Частью
Односторонняя синхронизация? Двухсторонняя синхронизация? Нажатие в реальном времени? Ночные обновления? Дамп и перезагрузка? Сравнить и обновить? Разрешение конфликтов? Какая сторона побеждает? Продвиньте информацию только для чтения один путь и информация для заказа другой путь? Что относительно изменений/отмен/и т.д.? Статусы заказа становятся пододвинутыми обратно?
Вы видите, куда я иду сюда. Технология является вторичным вопросом.
Из-за проблемы бизнес-правил, и потому что эти две системы имеют различные схемы (и различные цели), это не стандартное перемещение данных, и большинство "стандартных" ответов (репликация, передача журналов, и т.д.) закрыто.
Существуют платформы, там разработанные для помощи с этим, как Понимание Microsoft BizTalk или Скрайбирования. Они являются громоздкими и дорогими, все же.
Не слишком трудно создать пользовательскую систему массового обслуживания или на основе триггеров SQL или на основе запланированных нажатий (в зависимости от Ваших потребностей) в C# или Вашем любимом языке. Это - вероятно, маршрут, я пошел бы. Это, вероятно, включило бы третью базу данных "передачи" для содержания очереди изменений, внесенных одной стороной и модулем, чтобы применить бизнес-правила и продвинуть данные к другому.
Репликация работает хорошо, и если это - два пути, это мог бы быть Ваш единственный жизнеспособный вариант, так как разрешение конфликтов встроено.
Если бы Вы идете односторонние, SSIS, или включает таблицы, был бы прекрасный, и продвинул бы данные, в реальном времени (для триггеров), или в любом интервале Вы хотите (SSIS). Позитивный аспект к SSIS был бы то, что это - фоновый процесс, тогда как триггеры могли потенциально поддержать транзакции на стороне предоставления, в то время как они продвигают данные.
Если Вы надеетесь перемещать значительные объемы данных, существуют другие продукты там, которые могут сделать это для Вас, но если это не слишком много данных, решение с помощью инструментов SQL Servers должно сделать все, в чем Вы нуждаетесь.