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)