我试图从函数中重写全局定义的数据帧。 不知何故,全局值不会改变,在函数中打印数据帧会使用预期值。在
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环境中的某些内容是不正确的,尽管我反复安装了它。在
(Spyder maintainer here)您需要转到菜单
Run > Configuration per file
并激活名为
Run in console's namespace instead of an empty one
的选项,以便您能够修改代码中的全局变量。在相关问题 更多 >
编程相关推荐