Geopandas:如何读取 csv 并转换为带有多边形的 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,....

原文由 emax 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

Geopandas 似乎无法从熊猫数据框转换几何列。

解决方案编号 2

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

 from shapely import wkt

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

祝你好运!


不要使用 - 对某些人来说会使 spyder 和 jupyter 内核崩溃

解决方案编号 1:尝试使用 geopandas 直接加载 csv

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

原文由 ffrosch 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题