如何分配数据框?

时间:2015-01-05 11:51:50

标签: python pandas

我是熊猫的新手,我正在努力应对非常容易的事情。

我想定义一个"收集"一些数据并在满足某些条件时将其存储在名为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()还不够?我失踪了吗?

谢谢

1 个答案:

答案 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有关全局变量和局部变量的更多信息