Неоднократно при кодировании (начинающий кодер) я получаю то же сообщение об ошибке при работе с 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)
Ошибка = AttributeError: у объекта 'GeoDataFrame' нет атрибута 'threat_events'
polys - это шейп-файл. конфликт является точечным набором данных.
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 - это шейп-файл.
В обоих случаях одна и та же ошибка. В первом случае я пытаюсь пройтись по многоугольникам, определить, сколько точек попадает в каждый из них (количество), и сохранить это значение в новой строке "threat_events". Во втором случае я пытаюсь использовать sklearn для нормализации значений в двух строках (simEnd и val_mar19) из двух шейп-файлов соответственно (output и val) в 0-1. Мне кажется, что я что-то неправильно обрабатываю, когда дело доходит до GeoDataFrames.