ジオパンダの類似データフレームのリストに参加(連結)しますか?


15

データフレームのリストがあります。すべて同じ構造で、すべてポリゴンです。

ジオパンダを使用してそれらをすべて一緒に追加するにはどうすればよいですか?

回答:


27

これは今それを行う正しい方法のようです:

rdf = gpd.GeoDataFrame( pd.concat( dataframesList, ignore_index=True) )

7
すばらしい答え、1つの改善: rdf = gpd.GeoDataFrame(pd.concat(dataframesList, ignore_index=True), crs=dataframesList[0].crs)。これで、新しいデータフレームも、初期データフレームの1つと同じCRSを持ちます。pandas.concatCRSなどの地理的メタデータを使用しているため、デフォルトでは保持されません。
AleksMat 2018

これはうまくいきます-ありがとう。たとえば、1つのファイルに「名前」があり、別のファイルに「名前」がある場合、1つのファイルの行のどちらの列にも何もないことになりました。確実に再現できなかったため、列のマッシュを簡略化するために列名を小文字に強制しましたが、これは信頼できるようです。
Mike Honey

12

私はこれを試してみました-おそらくGeoPandas 0.2.1とPandas 0.20.3では少し簡潔です:

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

gdfは、GeoDataFrameとして自動的に作成されます。もちろん、インデックスが競合する可能性がある場合は、 'ignore_index = True'パラメータを保持する必要があります。


3
私はこれを試してみましたが、機能しないことを確認できます(pandas_0.20.3 geopandas_0.3.0を使用)。結果は、GeoDataFrameではなく、DataFrameです。たとえば、使用しようとするgdf1.to_file(xxx, driver='ESRI Shapefile')と、次のエラーが表示されます'DataFrame' object has no attribute 'to_file'
jberrio

@jberrio更新ありがとうございます!GeoPandasの更新により、状況がより明確になったようです。
Charlie Parr

1
モデレーターに承認チェックマークを削除するよう依頼した報告者の場合、これは実行できないことに注意してください。meta.stackexchange.com/a/187263/215590からの回避策として、回答を削除しようとしましたが、回答者が削除を取り消すように要求しました。で提案されている、もはや正しいかもしれ受け入れられた答えに対処するための長期的なソリューションmeta.stackexchange.com/questions/268666/...
PolyGeo

これは私にパンダバージョン:0.24.2とgeopandasバージョン:0.5.0でうまく機能しました
デンソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.