gpt4 book ai didi

python - 将 geopandas geodataframe 转换为 pandas dataframe

转载 作者:太空狗 更新时间:2023-10-29 20:16:26 34 4
gpt4 key购买 nike

将 geopandas geodataframe 转换为 pandas dataframe 的最有效方法是什么?以下是我使用的方法,是否有另一种方法更有效或通常不会产生错误?

import geopandas as gpd
import pandas as pd

# assuming I have a shapefile named shp1.shp
gdf1 = gpd.read_file('shp1.shp')

# then for the conversion, I drop the last column (geometry) and specify the column names for the new df
df1 = pd.DataFrame(gdf1.iloc[:,:-1].values, columns = list(gdf1.columns.values)[:-1] )

最佳答案

您不需要将 GeoDataFrame 转换为值数组,您可以将其直接传递给 DataFrame 构造函数:

df1 = pd.DataFrame(gdf)

上面将保留“几何”列,这对于将其作为普通 DataFrame 来说没有问题。但是如果您真的想删除该列,您可以这样做(假设该列称为“几何”):

df1 = pd.DataFrame(gdf.drop(columns='geometry'))
# for older versions of pandas (< 0.21), the drop part: gdf.drop('geometry', axis=1)

两个注意事项:

  • 通常不需要将 GeoDataFrame 转换为普通 DataFrame,因为您从 DataFrame 了解的大多数方法都可以正常工作。当然,也有少数情况确实需要它(例如绘制没有几何图形的数据),那么上述方法是最好的方法。
  • 第一种方法 (df1 = pd.DataFrame(gdf)) 不会复制 GeoDataFrame 中的数据。从效率的角度来看,这通常会很好,但根据您要对 DataFrame 执行的操作,您可能需要一个实际副本:df1 = pd.DataFrame(gdf, copy=True)

关于python - 将 geopandas geodataframe 转换为 pandas dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504886/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com