我有以下代码,它不会返回在主模块中创建的数据帧.有人能帮我解决问题吗.如果不在main()中,该功能工作正常.我不确定这里错过了什么.我正在Jupyter笔记本中测试这段代码,并try 在一个新的单元格中调用exceldf

import package as pkg

def main():
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)

我希望看到exceldf中的数据,但我得到了错误"name 'exceldf' is not defined".

编辑:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_26012/684895253.py in <module>
----> 1 exceldf

NameError: name 'exceldf' is not defined

当没有包装在主函数中时,上述代码运行良好.

    list1,list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1,parameter2)
    exceldf.head()

The below fixed the issue

import package as pkg

def main():

    global exceldf
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)

推荐答案

exceldf仅在main()中局部声明,因此必须将exceldf声明为全局变量或从main()函数返回exceldf.

import package as pkg

def main():
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
    return exceldf


exceldf = main()

exceldf.head()
    

Python相关问答推荐

更改Seaborn条形图中的x轴日期时间限制

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

根据网格和相机参数渲染深度

jit JAX函数中的迭代器

仅从风格中获取 colored颜色 循环

如何才能知道Python中2列表中的巧合.顺序很重要,但当1个失败时,其余的不应该失败或是0巧合

在内部列表上滚动窗口

当多个值具有相同模式时返回空

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

对于一个给定的数字,找出一个整数的最小和最大可能的和

优化pytorch函数以消除for循环

在Python中管理打开对话框

如何在solve()之后获得症状上的等式的值

我如何根据前一个连续数字改变一串数字?

如何在FastAPI中为我上传的json文件提供索引ID?

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

使用Python从rotowire中抓取MLB每日阵容

如果包含特定值,则筛选Groupby

Pandas:计数器的滚动和,复位

分解polars DataFrame列而不重复其他列值