Global DataFrame没有更新python

时间:2017-11-30 08:52:37

标签: python function pandas dataframe global-variables

我有这段代码:

latitude = pd.DataFrame()
longitude = pd.DataFrame()

datasets = []

datasets.append(latitude)
datasets.append(longitude)

def fun(key, job):
    global latitude
    global longitude

    if(key == 'LAT'):
        latitude = job.copy()
    elif(key == 'LON'):
        longitude = job.copy()

for d in datasets:
    print(d.shape)

在此之后:Why does assigning to my global variables not work in Python?我使用了global关键字来确保正确引用变量。但是,值不会更新。有什么建议?我已经验证了if语句是正确的,因为我能够在其中打印一些内容。

输出:

(0, 0)
(0, 0)

此外,我正在使用spyder,我可以看到该列表包含空数据帧,并且全局变量也是空的。

1 个答案:

答案 0 :(得分:1)

好吧,你遇到的问题是你的程序指向datasets.append(latitude)中的某个值,当你更改global latitude latitude = job.copy()时,你改变了全局的价值变量而不是列表datasets中的变量。

如果您想要查看更改后的值打印latitude,您会看到值已更改。或更改datasets[0]中的值以获取循环中的纬度值。