如何解决“ GeoDataFrame对象没有属性...”错误

时间:2019-07-04 01:27:42

标签: python dataframe gis geopandas

重复地编码(新颖的编码器)时,在geopandas中使用GeoDataFrames时,我得到了相同的错误消息:AttributeError:'GeoDataFrame'对象没有属性XYZ。

同一错误在代码中的几个点发生(似乎我尝试实现的几乎每个操作)。


    conflict_events = []
    for index, row in polys.iterrows():
        polygon = polys.geometry[0]
        subset = conflict[conflict.within(polygon)]
        # print(subset)
        conflict_events.append(subset)
        print(polys.conflict_events)

Error = AttributeError:“ GeoDataFrame”对象没有属性“ conflict_events”

polys是一个shapefile。冲突是点数据集。


    for index, row in val.iterrows():
        # print(type(row['val_mar19']))
        # print(type(polys_val.loc[index].count))
        val_calc = row['val_mar19'] / float(polys_val.loc[index]['count'])
        if not math.isnan(val_calc):
            val_calc = int(val_calc)
        polys.REFPOP.iloc[[polys.NAME_1 == row.NAME_1]] = val_calc
    polys.to_file("val_pop.shp")
    scaler = preprocessing.StandardScaler()
    scaled_actual = scaler.fit_transform(output.row['simEnd'])
    scale_predicted = scaler.fit_transform(val.row['val_mar19'])

错误= AttributeError:“ GeoDataFrame”对象没有属性“行”

val是一个shapefile。

在两种情况下,相同的错误。在第一种情况下,我试图遍历多边形,确定每个(计数)内有多少点,然后将该值保存到新行“ conflict_events”。在第二种情况下,我尝试使用sklearn将两个shapefile(输出和val)中的两行(simEnd和val_mar19)中的值分别标准化为0-1。我认为我在处理GeoDataFrames时处理不正确。

1 个答案:

答案 0 :(得分:0)

我本身不使用GeoDataFrames,但是使用DataFrames。

在第一个实例中,您创建了一个名为冲突事件的列表对象。在底部,您尝试打印该信息,但已使用“ poly.conflict_events”进行了编码。 “ poly”是地理数据框对象,其属性可以由

调用
poly.someattribute

由于没有用于poly的属性冲突事件,因此python会引发错误。

在最后一行的第二个示例中,您正在执行类似的操作。 val是一个地理数据框对象。 “行”是由iterrows创建的对象的特定行的值。 “ val”没有专门称为row的属性。

希望有帮助。