У меня есть ~ 60 заархивированных шейп-файлов из переписи населения США для разных штатов. Я хочу объединить их все в один общенациональный шейп-файл. Я пробовал так много разных подходов, начиная с попытки загрузить файл с read_file и множества других примеров Python / pandas / geo pandas, которые используют файлы csv или сами файлы .shp. Я бы хотел по возможности не распаковывать молнии шейп-файлов. Насколько я понимаю, geo pandas .read_file может отлично работать с заархивированными шейп-файлами (например, https://www2.census.gov/geo/tiger/TIGER2010/TABBLOCK/2010/tl_2010_01_tabblock10.zip)
Но теперь у меня эти файлы есть локально.
Вот код, который я пытаюсь ввести в записной книжке:
from pathlib import Path
import pandas
import geopandas
folder = Path("/Users/kyle/Desktop/jupyter-env/blocks")
shapefiles = folder.glob("*.zip")
gdf = pandas.concat([
geopandas.read_file(shp)
for shp in shapefiles
]).pipe(geopandas.GeoDataFrame)
gdf.to_file(folder / 'compiled.shp')
Я получаю сообщение ValueError: No objects to concatenate
.
Мне здесь что-то не хватает. Файлы zip работают иначе, чем файлы csv или что-то в этом роде? Возможны ли такие вещи: перебирать список локальных или удаленных файлов и объединять заархивированные шейп-файлы в один большой?