#python-3.x #pandas #flask
#python-3.x #pandas #flask
Вопрос:
Я использую фреймы данных pandas в разных сценариях. Например:
script1.py
:
import pandas as pd
df1 = pd.read_csv("textfile1.csv")
"do stuff with df1 including copying some columns to use"
script2.py
:
import pandas
df2 = pd.read_csv("textfile2.csv")
"do stuff with df2 including using .loc to grab some specific rows.
а затем использовать эти два фрейма данных (на самом деле я использую около 50 фреймов данных) в разных представлениях Flask и скриптах python. Однако, когда я захожу на домашнюю страницу моего приложения Flask и выполняю шаги по созданию нового результата на основе другого входного файла, результат продолжает выдавать мне старый (или первый) файл результатов на основе фреймов данных, которые он прочитал в первый раз.
Я пробовал (в основном в сочетании друг с другом):
- logout_user()
- session.clear()
- CACHE_TYPE=null
- gc.collect()
- SECRET_KEY = str(uuid.uuid4())
- for var in dir():
if isinstance(eval(var), pd.core.frame.DataFrame):
del globals()[var]
Я не могу (читай: не должен) удалять фреймы данных pandas после их создания, поскольку все это взаимосвязано. Но я хотел бы, чтобы в конце последней страницы была кнопка, и если бы я щелкнул по ней, она удалила бы каждый фрейм данных pandas, который существует в каждом скрипте или в памяти. Возможно ли это? Надеюсь, это решит мою проблему.
Ответ №1:
Попробуйте с классом
class Dataframe1():
def __init__(self, data):
self.data = data
d1 = Dataframe1(pd.read_csv("textfile1.csv"))
Если вы хотите получить доступ к данным
d1.data
Чтобы удалить
del d1
Комментарии:
1. Я попробовал это в правильном скрипте, и это сработало. Большое спасибо!