Geopandas:如何读取csv文件并转换成带多边形的Geopandas数据框?

ctzwtxfj  于 2022-11-20  发布在  其他
关注(0)|答案(4)|浏览(333)

我读取了一个.csv文件作为 Dataframe ,如下所示:

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 Dataframe 。

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,....
kokeuurv

kokeuurv1#

由于某些原因,geopandas似乎无法从panda Dataframe 转换几何列。您可以尝试两种方法。
第2步:在将 Dataframe 转换为地理 Dataframe 之前,尝试在列上应用shapely 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'
tjvv9vkg

tjvv9vkg2#

您也可以尝试以下操作:

gdf = gpd.GeoDataFrame(
    df, geometry=gpd.points_from_xy(df.longitude, df.latitude)
)

这会将这些纬度/经度列转换为点

5t7ly7z5

5t7ly7z53#

伙计们,在原始 Dataframe 中有wkt几何字符串,而不是xy列,所以我建议阅读以下内容:DataFrame with WKT Column to GeoPandas Geometry

lymnna71

lymnna714#

如果你直接加载,Geopandas会在最后放置一个几何列。

相关问题