我尝试从函数中覆盖全局定义的数据帧。 不知何故,全局值不会更改,在函数中打印数据帧可以使用预期值。
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
变量资源管理器中的 appTitle 变量保持为空或不存在(取决于 pd 的使用。数据帧/pd.数据帧((( 谢谢!
编辑:在@4turkuaz评论说在他的环境中一切都按预期工作之后,我在Windows cmd中尝试了Python控制台,并在带有Python 3.7.4和IPython 7.8.0的Spyder3上尝试了Python控制台,其中一切正常。
只有在带有Python3.7.5和IPython 7.10.1的Spyder4上,它才不起作用。也许是一个错误?我不知道。。。
编辑:将Spyder4降级到Python 3.7.4和IPython 7.8.0并没有解决问题。我假设Spyder4或Anaconca环境中的某些内容,即使我一遍又一遍地安装它也是不正确的。
(Spyder 维护者在这里( 你需要去菜单
Run > Configuration per file
并激活名为Run in console's namespace instead of an empty one
,以便能够修改代码中的全局变量。