我想创建一个包含所有import语句的函数:
def imports():
import pandas as pd
import numpy as np
etc...
将其作为模块保存在.py文件中,并从我的Jupyter Notebook中调用该函数。
这只是为了整理笔记本。但是,它似乎无法创建包含import语句的函数? (我收到错误NameError: name 'pd' is not defined
)。谁知道为什么?
答案 0 :(得分:4)
相反,将所需的所有导入语句放入模块中,正如您通常所说的那样
contents_of_your_module.py
import pandas as pd
import numpy as np
import itertools
import seaborn as sns
然后从Jupyter导入
from contents_of_your_module import *
或者,您可以为模块创建命名空间并执行此操作
import contents_of_you_module as radar
然后您可以通过名称空间访问所有模块
radar.pd.DataFrame
答案 1 :(得分:3)
import pandas as pd
创建变量pd
。在您的情况下,变量是函数的本地变量,在外部不可见。将导入的模块的快捷方式声明为全局变量:
def imports():
global pd, np
import pandas as pd
import numpy as np
答案 2 :(得分:0)
总的来说,我会说做你想做的事情是一种非常糟糕的做法。如果你想完全按照你所描述的那样做,你就不能用pythonic的方式去做。
但这是一个可能有效的解决方案:
假装你有一个名为imports.py
的模块,它应该处理所有的导入:
文件: imports.py:
import numpy as np
import pandas as pd
您可以在程序中使用某个功能。
def do_funky_import_from():
from imports import *