我是熊猫的新手,我正在努力应对非常容易的事情。
我想定义一个"收集"一些数据并在满足某些条件时将其存储在名为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))])`
我收到以下错误&#34;本地变量&#39;重复&#39;在分配之前引用&#34;。
如何在开始时初始化重复数据帧?为什么使用repes = pd.DataFrame()还不够?我失踪了吗?
谢谢
答案 0 :(得分:2)
Python“假设”由于local
内部repes
的分配而导致我们需要rarea(x)
变量,因此第一个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有关全局变量和局部变量的更多信息