Как сохранить вычисленное значение переменной из одного скрипта Python для повторного использования снова и снова в другом скрипте Python - PullRequest
0 голосов
/ 26 октября 2018

У меня есть файл сценария python (3.7.0), который принимает более 17 000 текстовых файлов, а затем обрабатывает каждый файл построчно, чтобы заполнить необходимые данные во фрейме данных Pandas.Таким образом, код выглядит следующим образом: Script1.py файл:

def filePrpcesserFunc(file):
   data = open(file, 'r')
   for line in data.readlines():
      #Does some computing here to get var1, var2, var3
      #var1, var2, var3 are all integers
   return var1, var2, var3

if __name__ == '__main__':
   import glob2
   import pandas
   files = glob2.glob("*.txt")
   #There are more than 17,000 text files to be computed
   X = pandas.DataFrame()
   for file in files:
      rvar1, rvar2, rvar3 = fileProcesserFunc(file)
      X.loc[str(rvar1), str(rvar2)] = rvar3

Теперь вышеприведенный скрипт на python запускает более 17 000 файлов, чтобы сделать pandas dataframe X, который должен быть вычислен толькоодин раз, чтобы получить данные (и вычисления довольно дорогие) .Мне нужно использовать этот фрейм данных в другом файле сценария (скажем) Script2.py , чтобы создать модель машинного обучения и, таким образом, чтобы протестировать мою модель, мне потребуется снова и снова обращаться к X, то естьзапускать Script2.py снова и снова.Кто-нибудь может предложить что-нибудь?Я был бы очень благодарен вам.

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете использовать встроенный рассол модуль:

В script1.py:

import pickle
with open('dataframe.txt', 'wb') as f:
    pickle.dump(X, f)

В script2.py:

import pickle
X = pickle.load(open('dataframe.txt', 'rb'))

Вы также можете загрузить встроенные методы to_pickle на кадры данных:

В script1.py:

X.to_pickle("./df.pkl")

В script2.py:

import pandas as pd
X = pd.read_pickle(¨./df.pkl¨)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...