@NIKA_R

Почему датафрейм Pandas не удаляется полностью?

В списке list хранятся пути к файлам с данными.
Данные обрабатываются в цикле, требуется считать данный в датафрейм из каждого файла и вывести на экран.

#
        for file in list_data: 
            s = os.path.basename(file)
            df_terminals = pd.read_excel(file , sheet_name='terminals', header=0, index_col=None )
            df_terminals['update_dt'] = s[10:-11]+'-'+s[12:-9]+'-'+s[14:-5] 
            print(df_terminals)
            del(df_terminals)


Но df_terminals не перезаписывается!
Цикл работает, file изменяется, df_terminals['update_dt'] перезаписывается.
Как полностью удалить датафрейм?

/home/user/project/t_02.xlsx
t_02.xlsx
Вывод датафрейма

/home/user/project/t_03.xlsx
t_03.xlsx
Вывод старого датафрейма с новым updat

/home/user/project/t_01.xlsx
t_01.xlsx
Вывод старого датафрейма с новым updat
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
ma4akk
@ma4akk
Возможно, проблема заключается в том, что вы пытаетесь удалить ссылку на датафрейм, но не сам датафрейм. В Python переменные являются ссылками на объекты, и при использовании оператора del, вы удаляете только ссылку на объект, но не сам объект. Датафрейм по-прежнему существует в памяти. Чтобы его удалить полностью, можно использовать метод df.drop().

df_terminals.drop(inplace=True)Метод df.drop() принимает параметр inplace, который позволяет указать, что изменения нужно применить к текущему датафрейму, а не создать новый
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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