[英]One of my pygame screens is running 2 times when I import a function that returns 2 variables from another file
[英]External function returns DataFrames but not variables when running from Jupyter
假设您在Jupyter笔记本中有一个名为MainNotebook.ipynb的数据框,并且正在将该数据框传递给名为testmath
的python文件中名为testmath.py
的外部python函数:
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
以便可以将它们用于以后的分析。
但是,奇怪的是,当您从MainNotebook.ipynb
运行testmath(mydf)
时,虽然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)
的命令print(Feb)
返回错误:NameError:未定义名称'Feb'
有什么方法可以检索函数内部生成的变量? 特别是如果您有很多呢? (我更喜欢不涉及全局变量的方法,gulp)
我已经尝试删除pycache,然后重新启动内核并清除输出。 我还更新了所有的conda程序包,但仍然没有运气。
由于函数返回一个tuple
,因此可以使用序列解压缩 :
mydf, Feb = testmath(mydf)
右侧返回一个结果元组,将其解压缩为变量mydf
和Feb
然后可以像访问其他任何变量一样访问这些变量。
等价于pd.DataFrame.pipe
:
mydf, Feb = mydf.pipe(testmath)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.