Я так понял - это такой тест на умение угадывать, что и как написано в других частях вашей программы.
Кроме того, вы уверены, что в вашем коде отступы во внутреннем цикле именно такие, как вы нам показали?
if row.targer.str.startswith("0"):
old_result=row.result
df.loc[index, "result"] = "0"+ old_result
Или это тест на наше знание языка?
Но допустим, что это ошибка, и две строчки внутреннего цикла все-таки смещены относительно строчки условия.
Тогда вариантов остается достачтоно.
1. Никаких изменений в объекте df не произойдет если в исходном объекте df изначально нет ни одной строки. А есть они там или нет - сие нам не ведомо.
2. Условие
if row.targer.str.startswith("0"):
не выполняется никогда. Так это или нет - сие нам тоже не ведомо. А вы сами это проверяли?
3. Ладно, выгружается не то, что вы ожидаете. При так небрежно и неполно приведенном клочке скрипта
угадать что не так в вашем скрипте - весьма трудно. Но вы хоть сами необходимую отладку провели? Вы проверили, а перед выгрузкой в файл в самом объекте какие данные находятся "старые" или "новые"? Или вы тоже это предлагаете нам угадать?