Geopandas:如何读取csv并转换为具有多边形的geopandas数据框?

问题描述 投票:0回答:1

我将.csv文件作为数据帧读取,如下所示:

import pandas as pd
df = pd.read_csv('myFile.csv')
df.head()
    BoroName    geometry
0   Brooklyn    MULTIPOLYGON (((-73.97604935657381 40.63127590...
1   Queens      MULTIPOLYGON (((-73.80379022888098 40.77561011...
2   Queens      MULTIPOLYGON (((-73.8610972440186 40.763664477...
3   Queens      MULTIPOLYGON (((-73.75725671509139 40.71813860...
4   Manhattan   MULTIPOLYGON (((-73.94607828674226 40.82126321...

我想将其转换为geopandas数据框。

import geopandas as gpd
crs = {'init': 'epsg:4326'}
gdf = gpd.GeoDataFrame(df, crs=crs).set_geometry('geometry')

但出现以下错误

TypeError: Input must be valid geometry objects: MULTIPOLYGON (((-73.97604935657381 40.631275905646774, -73.97716511994669 40.63074665412933,....
python pandas geopandas
1个回答
1
投票

出于某种原因,geopandas似乎无法从pandas数据框中转换几何列。您可以尝试两种方法。

数字1:尝试使用geopandas直接加载csv

gdf = gpd.read_file('myFile.csv')
gdf.crs = 'epsg:4326'

数字2:在将数据框转换为地理数据框之前,尝试在列上应用整形的wkt.loads函数。

from shapely import wkt

df['geometry'] = df['geometry'].apply(wkt.loads)
gdf = gpd.GeoDataFrame(df, crs='epsg:4326')

两种方法都可以。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.