@LakeForest

Почему после изменений строк в столбце и сохранения в csv — выгружаются (сохраняются) данные до изменений?

Подскажите, пожалуйста, почему после изменений строк в столбце и сохранения csv - выгружаются (сохраняются) данные до изменений (то есть будто я не проводил изменения по нужным строкам)?

Схема такая:
for index, row in df.iterrows():
    if row.targer.str.startswith("0"):
    old_result=row.result
    df.loc[index, "result"] = "0"+ old_result

df.to_csv("new_df.csv", index=False)


А выгружается будто я "0" не дописывал
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@LakeForest Автор вопроса
столбец выгружался как число. поэтому ноль - не отображался.
решение:
df = pd.read_csv("df.csv", dtype={"result": str})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmshar
Я так понял - это такой тест на умение угадывать, что и как написано в других частях вашей программы.
Кроме того, вы уверены, что в вашем коде отступы во внутреннем цикле именно такие, как вы нам показали?
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. Ладно, выгружается не то, что вы ожидаете. При так небрежно и неполно приведенном клочке скрипта угадать что не так в вашем скрипте - весьма трудно. Но вы хоть сами необходимую отладку провели? Вы проверили, а перед выгрузкой в файл в самом объекте какие данные находятся "старые" или "новые"? Или вы тоже это предлагаете нам угадать?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы