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

标签 python pandas geopandas

我读了 .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,....

最佳答案

出于某种原因,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')

无论哪种方式都应该有效。祝你好运!

关于python - Geopandas:如何读取 csv 并转换为带有多边形的 geopandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122875/

相关文章:

python - 分发 .pyc 文件有什么限制?

python - keras中多标签图像的一种热编码

python - 从很大范围的数字中分配一个数字的最佳解决方案是什么?

python - 更改多列值

python-3.x - IF else 和 for 循环在一行中

python - 如何在 Dataframe 中添加由 pd.Timestamp 和 float 组成的行

python - 无名函数作为函数参数?

azure - MS Fabric 和地理空间数据

python - Windows 10 版 Geopandas 安装

python-3.x - 向多边形添加标签