我是panda的新手,我正在为一些应该非常容易的事情而苦苦挣扎。
我想定义一个脚本,“收集”一些数据,并在满足某些条件时将其存储在一个名为repes的df中。
代码如下:
repes=pd.DataFrame()
for a in df:
if a.field==
def rarea(x):
proximo=df[(df.lat>float(x.lat)-0.001)&(df.lat<float(x.lat)+0.001)]
if len(proximo)==1:
p2 = proximo.coordenadas
return len(proximo)
elif len(proximo)==2:
repes=repes.append(proximo)
return len(proximo)
resultado=pd.Series([rarea(robser.iloc[cnt]) for cnt in range (0,len(robser))])`我得到了下面的错误:“在赋值之前引用了本地变量'repes‘”。
如何在开始时初始化repes数据帧?为什么使用repes=pd.DataFrame()还不够呢?我是不是错过了?
谢谢
发布于 2015-01-05 19:57:33
Python“假设”我们需要一个local变量,因为在rarea(x)中对repes进行了赋值,所以第一个assignment语句抛出了这个错误消息。在函数中更改或创建的任何变量都是局部变量,如果它没有被声明为全局变量。要告诉Python我们想要使用全局变量,我们必须使用关键字" global“
repes是一个全局变量。您必须将其声明为全局才能使用它。
def rarea(x):
global repes # add this line
proximo=df[(df.lat>float(x.lat)-0.001)&(df.lat<float(x.lat)+0.001)]Read有关全局变量和局部变量的详细信息
https://stackoverflow.com/questions/27778958
复制相似问题