Geopandas - Попытка изменить значения в ячейке работает, только если столбец NoneType
Я пытаюсь открыть Geopackage, чтобы добавить туда столбец (количество членов) и заполнить эти ячейки в соответствии с количеством членов в определенной области.
Если я создаю столбец как "None", все работает нормально, за исключением того, что QGIS не распознает эти значения как целочисленные, но как String (приводит к проблемам при попытке классификации при символизации всего).
Если я изменю его так, что столбец будет создан как целое число, значения не будут заполнены, и каждая ячейка будет иметь значение "0" (стандартное целочисленное значение).
gdf = gpd.read_file("file.gpkg")
gdf["member_count"] = None
agg = {'Berlin' : 25}
for index, row in gdf.iterrows():
if row["name"] in agg:
row["member_count"] = agg[row["name"]]
gdf.crs = {'init' : 'epsg:25832'}
gdf.to_file("data/test.gpkg", driver="GPKG")
С этим фрагментом кода ячейки будут заполнены значением, которое находится в словаре 'agg' (только если значение из другого столбца 'name' найдено в dict). Если я изменю None в строке 2 на int() или 0, все ячейки будут иметь значение 0 и не будут заполнены соответствующим значением из dict.
Итак, с приведенным выше фрагментом кода я получаю что-то вроде этого, с проблемой, что QGIS не распознает member_count как целочисленный столбец.
suid ... member_count
0 07334013 ... None
1 07337005 ... None
2 07334008 ... None
3 06431018 ... None
4 06431021 ... 3
5 08226080 ... None
6 07332025 ... 2
7 07337501 ... None
8 08226056 ... None
9 08225116 ... None
10 08226086 ... None
11 08226020 ... None
12 08226059 ... 3
13 08226003 ... 1
После изменения None в строке 2 на int() или 0, я получаю это:
suid ... member_count
0 07334013 ... 0
1 07337005 ... 0
2 07334008 ... 0
3 06431018 ... 0
4 06431021 ... 0
5 08226080 ... 0
6 07332025 ... 0
7 07337501 ... 0
8 08226056 ... 0
9 08225116 ... 0
10 08226086 ... 0
11 08226020 ... 0
12 08226059 ... 0
13 08226003 ... 0