重写函数内部的全局变量不适用于Spyder 4

2024-06-26 18:07:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从函数中重写全局定义的数据帧。 不知何故,全局值不会改变,在函数中打印数据帧会使用预期值。在

import pandas as pd

rawData = pd.read_csv("music.csv")
appTitles =pd.DataFrame #also with pd.DataFrame() wont get affected

def loadTitles(df=rawData):
    global appTitles
    appTitles = pd.DataFrame({'Title' : df['title']})
    print(appTitles) 
return appTitles #(second 'print' to screen)

#RUN FILE
#CALL FUNCTION: loadTitles() #-> No Variable appTitles

变量资源管理器中的appTitles变量保持为空或不存在(取决于pd.数据帧/pd.DataFrame())谢谢!在

编辑:在@4turkuaz评论说,在他的环境中,一切都如预期的一样,我尝试了Windows cmd中的Python控制台,也尝试了使用Python 3.7.4和IPython 7.8.0的Spyder3上,一切都很好。在

只有在安装了python3.7.5和ipython7.10.1的Spyder4上,它才起作用。也许是虫子?我不知道。。。在

编辑:将Spyder4降级到Python 3.7.4和IPython 7.8.0并没有解决这个问题。我假设Spyder4或Anaconca环境中的某些内容是不正确的,尽管我反复安装了它。在


Tags: csv数据函数编辑dataframedf环境ipython
1条回答
网友
1楼 · 发布于 2024-06-26 18:07:24

Spyder maintainer here)您需要转到菜单

Run > Configuration per file

并激活名为Run in console's namespace instead of an empty one的选项,以便您能够修改代码中的全局变量。在

相关问题 更多 >