Juntando-se à lista (concat) de quadros de dados semelhantes em geopandas?

15

Eu tenho uma lista de quadros de dados, todos da mesma estrutura e todos são polígonos.

Como posso adicioná-los todos juntos usando geopandas?

Philipp_Kats
fonte

Respostas:

28

parece que esta é a maneira correta de fazer isso agora:

rdf = gpd.GeoDataFrame( pd.concat( dataframesList, ignore_index=True) )
Philipp_Kats
fonte
8
Grande resposta, uma melhoria: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs). Agora, o novo quadro de dados também terá o mesmo CRS que um dos quadros de dados iniciais. Por usar pandas.concatqualquer metadado geográfico, como o CRS, não é preservado por padrão.
precisa saber é o seguinte
Isso funciona bem - obrigado. Eu encontrei o anexo pode se perder, por exemplo, quando um arquivo tem "nome" e outro tem "Nome", acabei com nada em nenhuma coluna para linhas de um arquivo. Como não era possível reproduzi-lo de maneira confiável, acabei forçando os nomes das colunas em minúsculas para simplificar o mashing de coluna, o que parece ser confiável.
Mike Mel
13

Eu apenas experimentei isso - talvez no GeoPandas 0.2.1 e Pandas 0.20.3 seja um pouco mais conciso:

gdf = pd.concat([gdf1, gdf2])

O gdf é criado automaticamente como um GeoDataFrame. Obviamente, se houver uma chance de índices conflitantes, você desejará manter o parâmetro 'ignore_index = True'.

Charlie Parr
fonte
3
Eu apenas tentei isso e posso confirmar que não funciona (usando pandas_0.20.3 geopandas_0.3.0). O resultado é um DataFrame, não um GeoDataFrame. Por exemplo, se você tentar usar gdf1.to_file(xxx, driver='ESRI Shapefile'), receberá um erro que diz'DataFrame' object has no attribute 'to_file'
jberrio
@jberrio obrigado pela atualização! parece que a atualização para o GeoPandas tornou as coisas mais explícitas.
Charlie Parr
1
Para o sinalizador que solicitou moderadores, remova a marca de seleção Aceitar, lembre-se de que isso não é possível. Como solução alternativa de meta.stackexchange.com/a/187263/215590 , tentei excluir a resposta, mas o respondente solicitou que ela fosse desfeita. A solução a longo prazo para lidar com respostas aceitas que podem não estar mais correta foi proposta pelo meta.stackexchange.com/questions/268666/...
PolyGeo
Isso funcionou bem para mim com a versão pandas: 0.24.2 e geopandas versão: 0.5.0
denson