首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分配数据帧?

如何分配数据帧?
EN

Stack Overflow用户
提问于 2015-01-05 19:51:50
回答 1查看 1.6K关注 0票数 1

我是panda的新手,我正在为一些应该非常容易的事情而苦苦挣扎。

我想定义一个脚本,“收集”一些数据,并在满足某些条件时将其存储在一个名为repes的df中。

代码如下:

代码语言:javascript
复制
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()还不够呢?我是不是错过了?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-05 19:57:33

Python“假设”我们需要一个local变量,因为在rarea(x)中对repes进行了赋值,所以第一个assignment语句抛出了这个错误消息。在函数中更改或创建的任何变量都是局部变量,如果它没有被声明为全局变量。要告诉Python我们想要使用全局变量,我们必须使用关键字" global“

repes是一个全局变量。您必须将其声明为全局才能使用它。

代码语言:javascript
复制
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有关全局变量和局部变量的详细信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27778958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档