geopandas.GeoDataFrame.from_postgis#

classmethod GeoDataFrame.from_postgis(sql, con, geom_col='geom', crs=None, index_col=None, coerce_float=True, parse_dates=None, params=None, chunksize=None)[来源]#

备用构造函数,从包含WKB表示的几何列的sql查询中创建一个 GeoDataFrame

Parameters:
sqlstring
consqlalchemy.engine.Connection or sqlalchemy.engine.Engine
geom_colstring, default ‘geom’

要转换为shapely几何体的列名

crsoptional

返回的GeoDataFrame使用的坐标参考系统

index_colstring or list of strings, optional, default: None

要设为索引的列(多重索引)

coerce_floatboolean, default True

尝试将非字符串、非数字对象(如 decimal.Decimal)转换为浮点数,这对于 SQL 结果集很有用

parse_dateslist or dict, default None
  • 要解析为日期的列名列表。

  • 字典 {column_name: format string},其中格式字符串在解析字符串时间时与 strftime 兼容,或者在解析整数时间戳时是 (D, s, ns, ms, us) 之一。

  • 字典 {column_name: arg dict},其中 arg 字典对应于 pandas.to_datetime() 的关键字参数。特别适用于没有原生日期时间支持的数据库,如 SQLite。

paramslist, tuple or dict, optional, default None

传递给执行方法的参数列表。

chunksizeint, default None

如果指定,则返回一个迭代器,其中 chunksize 是每个块中包含的行数。

另请参阅

geopandas.read_postgis

将PostGIS数据库读取到GeoDataFrame

示例

PostGIS

>>> from sqlalchemy import create_engine  
>>> db_connection_url = "postgresql://myusername:mypassword@myhost:5432/mydb"
>>> con = create_engine(db_connection_url)  
>>> sql = "SELECT geom, highway FROM roads"
>>> df = geopandas.GeoDataFrame.from_postgis(sql, con)  

空间Lite

>>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads"
>>> df = geopandas.GeoDataFrame.from_postgis(sql, con)  

从PostGIS读取数据的推荐方法是 geopandas.read_postgis():

>>> df = geopandas.read_postgis(sql, con)