Python 具有递增后缀的多变量代码自动化

Python 具有递增后缀的多变量代码自动化,python,dataframe,Python,Dataframe,从我这里的第一个线程继续 所以我已经有了一个叫做多边形的列表 我现在正在尝试自动执行10000个多边形的代码(下面显示的两个多边形的代码作为示例)。如果我手动处理10000个多边形,这段代码可以很好地工作,但是我在自动处理10K个多边形时遇到了问题 ### Polygon 1 def checkPolygon1(row): point = Point((row['X']), (row['Y'])) return polygon1.contains(point) #Apply

从我这里的第一个线程继续

所以我已经有了一个叫做多边形的列表

我现在正在尝试自动执行10000个多边形的代码(下面显示的两个多边形的代码作为示例)。如果我手动处理10000个多边形,这段代码可以很好地工作,但是我在自动处理10K个多边形时遇到了问题

### Polygon 1 
def checkPolygon1(row):
    point = Point((row['X']), (row['Y']))
    return polygon1.contains(point)

#Apply fn to each row of dataframe (datacopy)
datacopy.apply(checkPolygon1, axis=1)

#Create new variable InPolygon1 in data if X, Y in shapely file 
datacopy['InPolygon1'] = datacopy.apply(checkPolygon1, axis=1)



### Polygon 2
def checkPolygon2(row):
    point = Point((row['X']), (row['Y']))
    return polygon2.contains(point)

datacopy.apply(checkPolygon2, axis=1)
#Create new variable InPolygon2 in data if X, Y in shapely file 
datacopy['InPolygon2'] = datacopy.apply(checkPolygon2, axis=1)
其思想是拥有一个包含10000个变量的数据帧,因此InPolygon1、InPolygon2…inpolygon1000

我的一些尝试: 因此,首先,我尝试创建另一个需要

polygons[0].contains(point), 
polygons[1].contains(point)...polygons[10000].contains(point)
但我无法正确地创建它

    def checkPolygon(row):
    point = Point((row['X']), (row['Y']))
    return point

    nextpolygons = []  
    def check():
        for i in range(0,2):  #actual range(0,10000)
            nextpolygons.append(polygons[i].contains(checkPolygon(row)))  

    check()   #NameError: name 'row' is not defined
我的想法是,在正确定义此列表后,我将尝试自动化以下部分:

datacopy.apply(checkPolygon1, axis=1)
datacopy['InPolygon1'] = datacopy.apply(checkPolygon1, axis=1)

如果您对此有任何想法,我们将不胜感激

欢迎来到SO,请使用预览检查您的帖子是否正确格式化,以便我们阅读。我已经为你编辑了这篇文章(等待批准)。你为什么不在@LaurentPorte CR上发表文章,是为了改进工作代码的风格,而不是修复出现错误的代码。在
check()
函数中定义的
row
在哪里?所以我添加了一些code def checkPolygon(row)当前位置在我原来的帖子中的部分…它似乎仍然不能自动完成。我可能错过了什么。。