重复地编码(新颖的编码器)时,在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时处理不正确。
答案 0 :(得分:0)
我本身不使用GeoDataFrames,但是使用DataFrames。
在第一个实例中,您创建了一个名为冲突事件的列表对象。在底部,您尝试打印该信息,但已使用“ poly.conflict_events”进行了编码。 “ poly”是地理数据框对象,其属性可以由
调用poly.someattribute
由于没有用于poly的属性冲突事件,因此python会引发错误。
在最后一行的第二个示例中,您正在执行类似的操作。 val是一个地理数据框对象。 “行”是由iterrows创建的对象的特定行的值。 “ val”没有专门称为row的属性。
希望有帮助。