Допустим, у вас есть блок данных в записной книжке Jupyter с именем MainNotebook.ipynb, и вы передаете этот блок данных во внешнюю функцию Python testmath
в файле Python testmath.py
:
import pandas as pd
from testmath import testmath
sales = [{'account': 'Jones LLC', 'Jan': 150, 'Feb': 200, 'Mar': 140},
{'account': 'Alpha Co', 'Jan': 200, 'Feb': 210, 'Mar': 215},
{'account': 'Blue Inc', 'Jan': 50, 'Feb': 90, 'Mar': 95 }]
mydf = pd.DataFrame(sales)
testmath(mydf)
Вот код для testmath.py:
import pandas as pd
def testmath(inputdf):
Feb = inputdf['Feb']
inputdf['FebPesos'] = Feb * 12
return inputdf, Feb
Я пытаюсь заставить функцию возвращать ОБА DataFrame mydf
И переменную Feb
, чтобы я мог использовать их для последующего анализа.
Однако странно то, что при запуске testmath(mydf)
из MainNotebook.ipynb
, когда DataFrame возвращается с добавленным новым столбцом, переменная 'Feb' недоступна.
Под этим я подразумеваю, что если вы запускаете следующее из MainNotebook:
from importdebug import testmath
import pandas as pd
sales = [{'account': 'Jones LLC', 'Jan': 150, 'Feb': 200, 'Mar': 140},
{'account': 'Alpha Co', 'Jan': 200, 'Feb': 210, 'Mar': 215},
{'account': 'Blue Inc', 'Jan': 50, 'Feb': 90, 'Mar': 95 }]
mydf = pd.DataFrame(sales)
testmath(mydf)
print(Feb)
Команда на print(Feb)
возвращает ошибку:
NameError: имя 'Feb' не определено
Есть ли способ получить переменные, сгенерированные внутри функции? Особенно, если их у вас много? (Я бы предпочел метод, который не включает глобальные переменные, gulp)
Я уже пытался удалить pycache, перезапустить ядро и очистить вывод. Я также обновил все пакеты conda, но все равно не повезло.